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)

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<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, 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, 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, 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: Address, Sends> SendInput<ObservePeer<A>, Own> for WatchSends<A, Sends>

Source§

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

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> SendInput<Input, Own> for SendProduct<L, R>
where R: SendInput<Input, Own>,

Source§

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

Source§

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

Source§

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

Source§

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

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>,