Skip to main content

InterpretSends

Trait InterpretSends 

Source
pub trait InterpretSends<Interpreter: SendInterpreter, RootEvent, Path>: Sized + Send {
    // Required method
    fn interpret(
        self,
        interpreter: &mut Interpreter,
    ) -> impl Future<Output = Result<(), Interpreter::Error>> + 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. Composite products must visit every constituent lane exactly once without discarding either index.

Required Methods§

Source

fn interpret( self, interpreter: &mut Interpreter, ) -> impl Future<Output = Result<(), Interpreter::Error>> + Send

Interpret every value in this product in its defined structural order. The returned future completes each effect before beginning the next, so an asynchronous delivery can wait for bounded-mailbox capacity without reordering later effects or converting pressure into rejection.

§Errors

Returns the interpreter’s concrete error without consuming later lanes.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<Interpreter, RootEvent, Path, P> InterpretSends<Interpreter, RootEvent, Path> for Vec<Delivery<P>>
where Interpreter: InterpretDelivery<P> + Send, P: Protocol, Delivery<P>: Send,

Source§

fn interpret( self, interpreter: &mut Interpreter, ) -> impl Future<Output = Result<(), Interpreter::Error>> + Send

Source§

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

Source§

fn interpret( self, _: &mut Interpreter, ) -> impl Future<Output = Result<(), Interpreter::Error>> + Send

Implementors§

Source§

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

Source§

impl<Interpreter, RootEvent, Path, Request> InterpretSends<Interpreter, RootEvent, Path> for InterpreterRequests<Request>
where Interpreter: InterpretRequest<Request, RootEvent, Path> + Send, Request: Send,

Source§

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