pub enum CustomerDelivery<P>{
Logical {
delivery: Delivery<P>,
},
Established {
delivery: EstablishedDelivery<P>,
},
RejectedLogical {
delivery: Delivery<P>,
customer: ReplyRoute<P>,
},
RejectedEstablished {
delivery: EstablishedDelivery<P>,
customer: ReplyRoute<P>,
},
}Expand description
One customer outcome and every capability required if delivery rejects.
Ordinary accepted and terminal outcomes consume their sole customer route as the delivery target. A synchronously rejected keyed submission instead uses a cloned target and retains the original customer route in this action. A rejecting interpreter therefore returns both capabilities together.
Variants§
Logical
One outcome targeting a logical customer.
Established
One outcome targeting an exact customer.
Fields
§
delivery: EstablishedDelivery<P>Concrete exact delivery.
RejectedLogical
One rejected submission targeting a clone of a logical customer.
Fields
§
customer: ReplyRoute<P>Original unchanged customer route.
RejectedEstablished
One rejected submission targeting a clone of an exact customer.
Fields
§
delivery: EstablishedDelivery<P>Concrete delivery using the cloned target.
§
customer: ReplyRoute<P>Original unchanged customer route.
Trait Implementations§
Source§impl<P> ActionItem for CustomerDelivery<P>where
P: Protocol,
P::Addr: EndpointAddress + Send,
P::Msg: Send,
<P::Addr as EndpointAddress>::Established<P>: Send,
impl<P> ActionItem for CustomerDelivery<P>where
P: Protocol,
P::Addr: EndpointAddress + Send,
P::Msg: Send,
<P::Addr as EndpointAddress>::Established<P>: Send,
type Custody = (Option<CustomerDelivery<P>>, Option<<CustomerDelivery<P> as ActionItem>::Reply>)
type Input<'a> = &'a mut Option<CustomerDelivery<P>> where Self: 'a
type Reply = ItemSettlement<CustomerDelivery<P>, <CustomerDelivery<P> as ActionItem>::Accepted, <CustomerDelivery<P> as ActionItem>::Rejection, <CustomerDelivery<P> as ActionItem>::Prerequisite>
type Accepted = ()
type Rejection = ReplyDelivery<LogicalDeliveryReason, ExactDeliveryReason>
type Prerequisite = Never
fn prepare_interpretation( progress: &mut Option<InterpretationProgress<Self, Self::Custody, Self::Reply>>, )
fn interpretation_input<'a>(
custody: &'a mut Self::Custody,
) -> Option<(Self::Input<'a>, &'a mut Option<Self::Reply>)>where
Self: 'a,
fn finish_interpretation( progress: &mut Option<InterpretationProgress<Self, Self::Custody, Self::Reply>>, )
Source§impl<P> InterpreterRequest for CustomerDelivery<P>
impl<P> InterpreterRequest for CustomerDelivery<P>
Auto Trait Implementations§
impl<P> Freeze for CustomerDelivery<P>
impl<P> RefUnwindSafe for CustomerDelivery<P>where
<P as Protocol>::Addr: Sized + RefUnwindSafe,
<P as Protocol>::Msg: RefUnwindSafe,
<<P as Protocol>::Addr as EndpointAddress>::Established<P>: RefUnwindSafe,
impl<P> Send for CustomerDelivery<P>
impl<P> Sync for CustomerDelivery<P>
impl<P> Unpin for CustomerDelivery<P>
impl<P> UnsafeUnpin for CustomerDelivery<P>where
<P as Protocol>::Addr: Sized + UnsafeUnpin,
<P as Protocol>::Msg: UnsafeUnpin,
<<P as Protocol>::Addr as EndpointAddress>::Established<P>: UnsafeUnpin,
impl<P> UnwindSafe for CustomerDelivery<P>where
<P as Protocol>::Addr: Sized + UnwindSafe,
<P as Protocol>::Msg: UnwindSafe,
<<P as Protocol>::Addr as EndpointAddress>::Established<P>: 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