Skip to main content

SendLayer

Struct SendLayer 

Source
pub struct SendLayer<Owned, Inner> {
    pub owned: Owned,
    pub inner: Inner,
}
Expand description

Send effects introduced by one wrapper around inner send effects.

owned contains effects introduced by the current behavior layer and inner contains effects of the wrapped interaction. The structural SendsFor implementation is the composition law:

Event'   = OwnedEvent + InnerEvent
Effects' = OwnedEffects × InnerEffects

Owned return to the emitters target Event'; inner return to the emitters target InnerEvent and are therefore lifted through the same Inner injection. Established actor, child, and ancestor destinations are unaffected because they are not return to the emitters.

Fields§

§owned: Owned§inner: Inner

Implementations§

Source§

impl<Owned, Inner> SendLayer<Owned, Inner>

Source

pub const fn new(owned: Owned, inner: Inner) -> Self

Trait Implementations§

Source§

impl<Owned, Inner> ClassifySettlement for SendLayer<Owned, Inner>

Source§

fn settlement_status(&self) -> SettlementStatus

Inspect every member without consuming or rewriting the settlement.
Source§

impl<Owned: Clone, Inner: Clone> Clone for SendLayer<Owned, Inner>

Source§

fn clone(&self) -> SendLayer<Owned, Inner>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<Owned: Debug, Inner: Debug> Debug for SendLayer<Owned, Inner>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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§

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

Source§

impl<Owned, Inner> LogicalDeliveryProtocols for SendLayer<Owned, Inner>

Source§

type Protocols = <<Inner as LogicalDeliveryProtocols>::Protocols as BirthProtocolProduct>::Append<<Owned as LogicalDeliveryProtocols>::Protocols>

Ordered, duplicate-preserving logical protocol occurrences.
Source§

impl<Owned: PartialEq, Inner: PartialEq> PartialEq for SendLayer<Owned, Inner>

Source§

fn eq(&self, other: &SendLayer<Owned, Inner>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<Owned: SendEffects, Inner: SendEffects> SendEffects for SendLayer<Owned, Inner>

Source§

fn empty() -> Self

Source§

fn append(&mut self, other: Self)

Source§

fn combine(self, other: Self) -> Self

Source§

fn send<Input, Path>(&mut self, input: Input)
where Self: SendInput<Input, Path>,

Append one request to its statically selected semantic lane.
Source§

fn sending<Input, Path>(input: Input) -> Self
where Self: SendInput<Input, Path>,

Build a send product containing one request in its selected lane.
Source§

impl<Input, Path, Owned, Inner> SendInput<Input, Path> for SendLayer<Owned, Inner>
where Owned: SendInput<Input, Path>,

Source§

fn emit(&mut self, input: Input)

Source§

impl<Owned, Inner> SendSettlements for SendLayer<Owned, Inner>
where Owned: SendSettlements, Inner: SendSettlements,

Source§

impl<Host, RootEvent, Owned, Inner> SourceSettlementCustody<Host, RootEvent> for SendLayer<Owned, Inner>
where Host: Send, Owned: SourceSettlementCustody<Host, RootEvent> + Send, Inner: SourceSettlementCustody<Host, RootEvent> + Send,

Source§

type Custody = <(Inner, Owned) as SourceSettlementCustody<Host, RootEvent>>::Custody

Source§

fn prepare_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Source§

fn offer_next_to_source( custody: &mut Self::Custody, host: &mut Host, ) -> impl Future<Output = ()> + Send

Source§

fn finish_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)

Source§

impl<Owned: Copy, Inner: Copy> Copy for SendLayer<Owned, Inner>

Source§

impl<Owned: Eq, Inner: Eq> Eq for SendLayer<Owned, Inner>

Source§

impl<Event, OwnedEffects, InnerEffects> SendsFor<Event> for SendLayer<OwnedEffects, InnerEffects>
where Event: ComposedEvent, OwnedEffects: SendsFor<Event>, InnerEffects: SendsFor<Event::Inner>,

Source§

impl<Owned, Inner> StructuralPartialEq for SendLayer<Owned, Inner>

Auto Trait Implementations§

§

impl<Owned, Inner> Freeze for SendLayer<Owned, Inner>
where Owned: Freeze, Inner: Freeze,

§

impl<Owned, Inner> RefUnwindSafe for SendLayer<Owned, Inner>
where Owned: RefUnwindSafe, Inner: RefUnwindSafe,

§

impl<Owned, Inner> Send for SendLayer<Owned, Inner>
where Owned: Send, Inner: Send,

§

impl<Owned, Inner> Sync for SendLayer<Owned, Inner>
where Owned: Sync, Inner: Sync,

§

impl<Owned, Inner> Unpin for SendLayer<Owned, Inner>
where Owned: Unpin, Inner: Unpin,

§

impl<Owned, Inner> UnsafeUnpin for SendLayer<Owned, Inner>
where Owned: UnsafeUnpin, Inner: UnsafeUnpin,

§

impl<Owned, Inner> UnwindSafe for SendLayer<Owned, Inner>
where Owned: UnwindSafe, Inner: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.