Skip to main content

InterpretSends

Trait InterpretSends 

Source
pub trait InterpretSends<Interpreter, RootEvent, Path>: SendSettlements + Send {
    // Required method
    fn interpret(
        progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>,
        interpreter: &mut Interpreter,
    ) -> impl Future<Output = ()> + Send;
}
Expand description

Static interpretation of one complete sends value at an absolute event path.

Implementations are monomorphized over Interpreter; there is no erased envelope, runtime lane lookup, or downcast. RootEvent is the event type ultimately enqueued for the actor and Path is the current send owner’s absolute position in it. Lawful rejection and blocking continue to later independent items. Corruption stops interpretation but retains the exact fault item and every untouched suffix value in the settlement shape.

Required Methods§

Source

fn interpret( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, interpreter: &mut Interpreter, ) -> impl Future<Output = ()> + Send

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<Interpreter, RootEvent, Path> InterpretSends<Interpreter, RootEvent, Path> for Vec<Never>

Source§

fn interpret( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, _: &mut Interpreter, ) -> impl Future<Output = ()> + Send

Source§

impl<Interpreter, RootEvent, Path, Child, Source, Input, Occurrence> InterpretSends<Interpreter, RootEvent, Path> for Vec<ChildInput<Child, Source, Input, Occurrence>>
where Interpreter: InterpretItem<ChildInput<Child, Source, Input, Occurrence>, RootEvent, Path>, Child: Behavior, Child::Event: ChildInputIngress<Source, Input>, Input: Send,

Source§

fn interpret( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, interpreter: &mut Interpreter, ) -> impl Future<Output = ()> + Send

Source§

impl<Interpreter, RootEvent, Path, P> InterpretSends<Interpreter, RootEvent, Path> for Vec<Delivery<P>>
where Interpreter: InterpretItem<Delivery<P>, RootEvent, Path>, P: Protocol, P::Addr: Send, P::Msg: Send,

Source§

fn interpret( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, interpreter: &mut Interpreter, ) -> impl Future<Output = ()> + Send

Source§

impl<Interpreter, RootEvent, Path, P> InterpretSends<Interpreter, RootEvent, Path> for Vec<EstablishedDelivery<P>>
where Interpreter: InterpretItem<EstablishedDelivery<P>, RootEvent, Path>, P: Protocol, P::Addr: RecipientAddress, <P::Addr as RecipientAddress>::Established<P>: Send, P::Msg: Send,

Source§

fn interpret( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, interpreter: &mut Interpreter, ) -> impl Future<Output = ()> + Send

Source§

impl<Interpreter, RootEvent, Path, P, Occurrence> InterpretSends<Interpreter, RootEvent, Path> for Vec<ChildDelivery<P, Occurrence>>
where Interpreter: InterpretItem<ChildDelivery<P, Occurrence>, RootEvent, Path>, P: Protocol, P::Msg: Send,

Source§

fn interpret( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, interpreter: &mut Interpreter, ) -> impl Future<Output = ()> + Send

Implementors§

Source§

impl<Interpreter, RootEvent, Path> InterpretSends<Interpreter, RootEvent, Path> for NoSends

Source§

impl<Interpreter, RootEvent, Path, Item> InterpretSends<Interpreter, RootEvent, Path> for SourceActions<Item>
where Interpreter: InterpretItem<Item, RootEvent, Path>, Item: SourceAction, Item::Custody: Send,

Source§

impl<Interpreter, RootEvent, Path, Owned, Inner> InterpretSends<Interpreter, RootEvent, Path> for SendLayer<Owned, Inner>
where Interpreter: Send, Owned: InterpretSends<Interpreter, RootEvent, Path> + Send, Inner: InterpretSends<Interpreter, RootEvent, Inside<Path>> + Send, Owned::InterpretationCustody: Send, Inner::InterpretationCustody: Send,

Source§

impl<Interpreter, RootEvent, Path, Request> InterpretSends<Interpreter, RootEvent, Path> for InterpreterRequests<Request>
where Interpreter: InterpretItem<Request, RootEvent, Path>, Request: ActionItem, Request::Custody: Send,