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.
impl<Owned: Copy, Inner: Copy> Copy for SendLayer<Owned, Inner>
impl<Owned: Eq, Inner: Eq> Eq for SendLayer<Owned, Inner>
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,
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,
Source§fn interpret(
self,
interpreter: &mut Interpreter,
) -> impl Future<Output = Interpretation<Self::Settlements>> + Send
fn interpret( self, interpreter: &mut Interpreter, ) -> impl Future<Output = Interpretation<Self::Settlements>> + Send
Interpret every value in this product in its declared stable order.
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,
Source§type Settlements = SendLayer<<Owned as SendSettlements>::Settlements, <Inner as SendSettlements>::Settlements>
type Settlements = SendLayer<<Owned as SendSettlements>::Settlements, <Inner as SendSettlements>::Settlements>
Complete settlement product corresponding to
Self.Source§fn unattempted(self) -> Self::Settlements
fn unattempted(self) -> Self::Settlements
Preserve every item without granting interpretation authority.
impl<Event, OwnedEffects, InnerEffects> SendsFor<Event> for SendLayer<OwnedEffects, InnerEffects>
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,
Source§fn offer_next_to_source(
self,
host: &mut Host,
) -> impl Future<Output = SourceCustody<Self>> + Send
fn offer_next_to_source( self, host: &mut Host, ) -> impl Future<Output = SourceCustody<Self>> + Send
Offer only the next source input in declared order.
impl<Owned: PartialEq, Inner: PartialEq> 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