pub struct ReplyDeliveries<Logical, Established> { /* private fields */ }Expand description
Ordered customer-delivery lane preserving each route alternative.
Implementations§
Source§impl<Logical, Established> ReplyDeliveries<Logical, Established>
impl<Logical, Established> ReplyDeliveries<Logical, Established>
Sourcepub fn new(deliveries: Vec<ReplyDelivery<Logical, Established>>) -> Self
pub fn new(deliveries: Vec<ReplyDelivery<Logical, Established>>) -> Self
Construct one ordered customer-delivery lane.
Sourcepub fn as_slice(&self) -> &[ReplyDelivery<Logical, Established>]
pub fn as_slice(&self) -> &[ReplyDelivery<Logical, Established>]
Inspect the complete delivery order without exposing endpoint internals.
Sourcepub fn into_deliveries(self) -> Vec<ReplyDelivery<Logical, Established>>
pub fn into_deliveries(self) -> Vec<ReplyDelivery<Logical, Established>>
Consume the lane into its complete ordered alternatives.
Trait Implementations§
Source§impl<Logical, Established> ClassifySettlement for ReplyDeliveries<Logical, Established>where
Logical: ClassifySettlement,
Established: ClassifySettlement,
impl<Logical, Established> ClassifySettlement for ReplyDeliveries<Logical, Established>where
Logical: ClassifySettlement,
Established: ClassifySettlement,
Source§fn settlement_status(&self) -> SettlementStatus
fn settlement_status(&self) -> SettlementStatus
Inspect every member without consuming or rewriting the settlement.
Source§impl<Logical, Established> Debug for ReplyDeliveries<Logical, Established>where
ReplyDelivery<Logical, Established>: Debug,
impl<Logical, Established> Debug for ReplyDeliveries<Logical, Established>where
ReplyDelivery<Logical, Established>: Debug,
Source§impl<Interpreter, RootEvent, Path, P> InterpretSends<Interpreter, RootEvent, Path> for ReplyDeliveries<Delivery<P>, EstablishedDelivery<P>>where
Interpreter: InterpretItem<Delivery<P>, RootEvent, Path> + InterpretItem<EstablishedDelivery<P>, RootEvent, Path> + Send,
P: Protocol,
P::Addr: EndpointAddress + Send,
P::Msg: Send,
<P::Addr as RecipientAddress>::Established<P>: Send,
impl<Interpreter, RootEvent, Path, P> InterpretSends<Interpreter, RootEvent, Path> for ReplyDeliveries<Delivery<P>, EstablishedDelivery<P>>where
Interpreter: InterpretItem<Delivery<P>, RootEvent, Path> + InterpretItem<EstablishedDelivery<P>, RootEvent, Path> + Send,
P: Protocol,
P::Addr: EndpointAddress + Send,
P::Msg: Send,
<P::Addr as RecipientAddress>::Established<P>: Send,
fn interpret( progress: &mut Option<InterpretationProgress<Self, Self::InterpretationCustody, Self::Settlements>>, interpreter: &mut Interpreter, ) -> impl Future<Output = ()> + Send
Source§impl<P> LogicalDeliveryProtocols for ReplyDeliveries<Delivery<P>, EstablishedDelivery<P>>
impl<P> LogicalDeliveryProtocols for ReplyDeliveries<Delivery<P>, EstablishedDelivery<P>>
Source§type Protocols = BirthProtocol<P, NoBirthProtocols>
type Protocols = BirthProtocol<P, NoBirthProtocols>
Ordered, duplicate-preserving logical protocol occurrences.
Source§impl<Logical, Established> PartialEq for ReplyDeliveries<Logical, Established>where
ReplyDelivery<Logical, Established>: PartialEq,
impl<Logical, Established> PartialEq for ReplyDeliveries<Logical, Established>where
ReplyDelivery<Logical, Established>: PartialEq,
Source§impl<Logical, Established> SendEffects for ReplyDeliveries<Logical, Established>
impl<Logical, Established> SendEffects for ReplyDeliveries<Logical, Established>
Source§impl<Logical, Established> SendInput<ReplyDelivery<Logical, Established>, Own> for ReplyDeliveries<Logical, Established>
impl<Logical, Established> SendInput<ReplyDelivery<Logical, Established>, Own> for ReplyDeliveries<Logical, Established>
fn emit(&mut self, input: ReplyDelivery<Logical, Established>)
Source§impl<P> SendSettlements for ReplyDeliveries<Delivery<P>, EstablishedDelivery<P>>where
P: Protocol,
P::Addr: EndpointAddress,
Delivery<P>: ActionItem,
EstablishedDelivery<P>: ActionItem,
impl<P> SendSettlements for ReplyDeliveries<Delivery<P>, EstablishedDelivery<P>>where
P: Protocol,
P::Addr: EndpointAddress,
Delivery<P>: ActionItem,
EstablishedDelivery<P>: ActionItem,
type Settlements = ReplyDeliveries<SettledItem<Delivery<P>, ItemSettlement<Delivery<P>, <Delivery<P> as ActionItem>::Accepted, <Delivery<P> as ActionItem>::Rejection, <Delivery<P> as ActionItem>::Prerequisite>>, SettledItem<EstablishedDelivery<P>, ItemSettlement<EstablishedDelivery<P>, <EstablishedDelivery<P> as ActionItem>::Accepted, <EstablishedDelivery<P> as ActionItem>::Rejection, <EstablishedDelivery<P> as ActionItem>::Prerequisite>>>
type SourceCustody = <ReplyDeliveries<Delivery<P>, EstablishedDelivery<P>> as SendSettlements>::Settlements
type InterpretationCustody = Vec<ReplyDelivery<(Option<Delivery<P>>, Option<ItemSettlement<Delivery<P>, <Delivery<P> as ActionItem>::Accepted, <Delivery<P> as ActionItem>::Rejection, <Delivery<P> as ActionItem>::Prerequisite>>), (Option<EstablishedDelivery<P>>, Option<ItemSettlement<EstablishedDelivery<P>, <EstablishedDelivery<P> as ActionItem>::Accepted, <EstablishedDelivery<P> as ActionItem>::Rejection, <EstablishedDelivery<P> as ActionItem>::Prerequisite>>)>>
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, P> SourceSettlementCustody<Host, RootEvent> for ReplyDeliveries<ActionItemResult<Delivery<P>>, ActionItemResult<EstablishedDelivery<P>>>where
P: Protocol,
P::Addr: EndpointAddress,
Delivery<P>: ActionItem,
EstablishedDelivery<P>: ActionItem,
impl<Host, RootEvent, P> SourceSettlementCustody<Host, RootEvent> for ReplyDeliveries<ActionItemResult<Delivery<P>>, ActionItemResult<EstablishedDelivery<P>>>where
P: Protocol,
P::Addr: EndpointAddress,
Delivery<P>: ActionItem,
EstablishedDelivery<P>: ActionItem,
type Custody = ReplyDeliveries<SettledItem<Delivery<P>, ItemSettlement<Delivery<P>, <Delivery<P> as ActionItem>::Accepted, <Delivery<P> as ActionItem>::Rejection, <Delivery<P> as ActionItem>::Prerequisite>>, SettledItem<EstablishedDelivery<P>, ItemSettlement<EstablishedDelivery<P>, <EstablishedDelivery<P> as ActionItem>::Accepted, <EstablishedDelivery<P> as ActionItem>::Rejection, <EstablishedDelivery<P> as ActionItem>::Prerequisite>>>
fn prepare_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)
fn offer_next_to_source( _: &mut Self::Custody, _: &mut Host, ) -> impl Future<Output = ()> + Send
fn finish_source(progress: &mut Option<SourceProgress<Self, Self::Custody>>)
impl<Logical, Established> Eq for ReplyDeliveries<Logical, Established>where
ReplyDelivery<Logical, Established>: Eq,
impl<Event, Logical, Established> SendsFor<Event> for ReplyDeliveries<Logical, Established>
Auto Trait Implementations§
impl<Logical, Established> Freeze for ReplyDeliveries<Logical, Established>
impl<Logical, Established> RefUnwindSafe for ReplyDeliveries<Logical, Established>where
Logical: RefUnwindSafe,
Established: RefUnwindSafe,
impl<Logical, Established> Send for ReplyDeliveries<Logical, Established>
impl<Logical, Established> Sync for ReplyDeliveries<Logical, Established>
impl<Logical, Established> Unpin for ReplyDeliveries<Logical, Established>
impl<Logical, Established> UnsafeUnpin for ReplyDeliveries<Logical, Established>
impl<Logical, Established> UnwindSafe for ReplyDeliveries<Logical, Established>where
Logical: UnwindSafe,
Established: 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