Skip to main content

SendInput

Trait SendInput 

Source
pub trait SendInput<Input, Path> {
    // Required method
    fn emit(&mut self, input: Input);
}
Expand description

Static evidence that a send algebra contains one request lane.

Implementations append the input exactly once to that lane and leave every other lane unchanged. Path distinguishes repeated request types without erasing their position or choosing a lane at runtime.

Own selects the current algebra’s owned lane. Inner<Path> descends through the composed-behavior side of one product or named wrapper before applying Path. Consequently, paths remain statically known through arbitrary wrapper depth.

use behavior::{Inner, Own, SendAlgebra, SendProduct};

let mut sends = SendProduct::new(Vec::<u8>::new(), Vec::<u16>::new());
// `u32` is not accepted by either lane at this path.
sends.send::<_, Inner<Own>>(1_u32);

Required Methods§

Source

fn emit(&mut self, input: Input)

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl<T> SendInput<T, Own> for Vec<T>

Source§

fn emit(&mut self, input: T)

Implementors§

Source§

impl<A, D, J, R, C> SendInput<Delivery<D>, Own> for PoolBehaviorSends<A, D, J, R, C>
where A: Address, A::Nonce: From<u64>, D: Behavior<Addr = A, Msg = PoolResponse<J, R, A>>, C: Behavior<Addr = A, Ph = Never>,

Source§

impl<A, D, J, R, C> SendInput<Delivery<Proxy<C>>, Own> for PoolBehaviorSends<A, D, J, R, C>
where A: Address, A::Nonce: From<u64>, D: Behavior<Addr = A, Msg = PoolResponse<J, R, A>>, C: Behavior<Addr = A, Ph = Never>,

Source§

impl<A, Sends, C, Input, Path> SendInput<Input, Inner<Path>> for SupervisorSends<A, Sends, C>
where A: Address, A::Nonce: From<u64>, C: Behavior<Addr = A, Ph = Never>, Sends: SendInput<Input, Path>,

Source§

impl<A, Sends, C> SendInput<Delivery<Proxy<C>>, Own> for SupervisorSends<A, Sends, C>
where A: Address, A::Nonce: From<u64>, C: Behavior<Addr = A, Ph = Never>,

Source§

impl<A, Sends, C> SendInput<ObserveChild<<A as Address>::Nonce>, Own> for SupervisorSends<A, Sends, C>
where A: Address, A::Nonce: From<u64>, C: Behavior<Addr = A, Ph = Never>,

Source§

impl<A: Address, Sends, Input, Path> SendInput<Input, Inner<Path>> for WatchSends<A, Sends>
where Sends: SendInput<Input, Path>,

Source§

impl<A: Address, Sends> SendInput<ObservePeer<A>, Own> for WatchSends<A, Sends>

Source§

impl<C: Behavior> SendInput<Delivery<C>, Own> for ProxySends<C>

Source§

impl<C: Behavior> SendInput<ObserveChild<<<C as Behavior>::Addr as Address>::Nonce>, Own> for ProxySends<C>

Source§

impl<C: Behavior> SendInput<ObserveCreation<<<C as Behavior>::Addr as Address>::Nonce>, Own> for ProxySends<C>

Source§

impl<C: Behavior> SendInput<ReportWorkerCreationResolved<<<C as Behavior>::Addr as Address>::Nonce>, Own> for ProxySends<C>

Source§

impl<C: Behavior> SendInput<ReportWorkerStopped<<C as Behavior>::Addr>, Own> for ProxySends<C>

Source§

impl<L, R, Input, Path> SendInput<Input, Inner<Path>> for SendProduct<L, R>
where L: SendInput<Input, Path>,

Source§

impl<L, R, Input> SendInput<Input, Own> for SendProduct<L, R>
where R: SendInput<Input, Own>,

Source§

impl<M> SendInput<M, Own> for ServiceSends<M>

Source§

impl<Sends, Input, Path> SendInput<Input, Inner<Path>> for DeadlineSends<Sends>
where Sends: SendInput<Input, Path>,

Source§

impl<Sends, Input, Path> SendInput<Input, Inner<Path>> for ReceiveTimeoutSends<Sends>
where Sends: SendInput<Input, Path>,

Source§

impl<Sends> SendInput<ScheduleAfter, Own> for ReceiveTimeoutSends<Sends>

Source§

impl<Sends> SendInput<ScheduleAt, Own> for DeadlineSends<Sends>