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 × InnerEffectsOwned 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: InnerImplementations§
Trait Implementations§
Source§impl<Owned, Inner> ClassifySettlement for SendLayer<Owned, Inner>where
Owned: ClassifySettlement,
Inner: ClassifySettlement,
impl<Owned, Inner> ClassifySettlement for SendLayer<Owned, Inner>where
Owned: ClassifySettlement,
Inner: ClassifySettlement,
Source§fn settlement_status(&self) -> SettlementStatus
fn settlement_status(&self) -> SettlementStatus
Inspect every member without consuming or rewriting the settlement.
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,
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,
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>where
Owned: LogicalDeliveryProtocols,
Inner: LogicalDeliveryProtocols,
impl<Owned, Inner> LogicalDeliveryProtocols for SendLayer<Owned, Inner>where
Owned: LogicalDeliveryProtocols,
Inner: LogicalDeliveryProtocols,
Source§type Protocols = <<Inner as LogicalDeliveryProtocols>::Protocols as BirthProtocolProduct>::Append<<Owned as LogicalDeliveryProtocols>::Protocols>
type Protocols = <<Inner as LogicalDeliveryProtocols>::Protocols as BirthProtocolProduct>::Append<<Owned as LogicalDeliveryProtocols>::Protocols>
Ordered, duplicate-preserving logical protocol occurrences.
Source§impl<Owned: SendEffects, Inner: SendEffects> SendEffects for SendLayer<Owned, Inner>
impl<Owned: SendEffects, Inner: SendEffects> SendEffects for SendLayer<Owned, Inner>
Source§impl<Input, Path, Owned, Inner> SendInput<Input, Path> for SendLayer<Owned, Inner>where
Owned: SendInput<Input, Path>,
impl<Input, Path, Owned, Inner> SendInput<Input, Path> for SendLayer<Owned, Inner>where
Owned: SendInput<Input, Path>,
Source§impl<Owned, Inner> SendSettlements for SendLayer<Owned, Inner>where
Owned: SendSettlements,
Inner: SendSettlements,
impl<Owned, Inner> SendSettlements for SendLayer<Owned, Inner>where
Owned: SendSettlements,
Inner: SendSettlements,
type Settlements = SendLayer<<Owned as SendSettlements>::Settlements, <Inner as SendSettlements>::Settlements>
type SourceCustody = (Option<SourceProgress<<Inner as SendSettlements>::Settlements, <Inner as SendSettlements>::SourceCustody>>, Option<SourceProgress<<Owned as SendSettlements>::Settlements, <Owned as SendSettlements>::SourceCustody>>)
type InterpretationCustody = SendLayer<Option<InterpretationProgress<Owned, <Owned as SendSettlements>::InterpretationCustody, <Owned as SendSettlements>::Settlements>>, Option<InterpretationProgress<Inner, <Inner as SendSettlements>::InterpretationCustody, <Inner as SendSettlements>::Settlements>>>
fn prepare_interpretation( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, )
fn finish_interpretation( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, )
fn unattempted( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, )
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,
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,
type Custody = <(Inner, Owned) as SourceSettlementCustody<Host, RootEvent>>::Custody
fn prepare_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)
fn offer_next_to_source( custody: &mut Self::Custody, host: &mut Host, ) -> impl Future<Output = ()> + Send
fn finish_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)
impl<Owned: Copy, Inner: Copy> Copy for SendLayer<Owned, Inner>
impl<Owned: Eq, Inner: Eq> Eq for SendLayer<Owned, Inner>
impl<Event, OwnedEffects, InnerEffects> SendsFor<Event> for SendLayer<OwnedEffects, InnerEffects>
impl<Owned, Inner> StructuralPartialEq for SendLayer<Owned, Inner>
Auto Trait Implementations§
impl<Owned, Inner> Freeze for SendLayer<Owned, Inner>
impl<Owned, Inner> RefUnwindSafe for SendLayer<Owned, Inner>where
Owned: RefUnwindSafe,
Inner: RefUnwindSafe,
impl<Owned, Inner> Send for SendLayer<Owned, Inner>
impl<Owned, Inner> Sync for SendLayer<Owned, Inner>
impl<Owned, Inner> Unpin for SendLayer<Owned, Inner>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more