pub struct HCons<H, T> {
pub head: H,
pub tail: T,
}Expand description
Non-empty heterogeneous list node.
HCons<H, T> holds a head element and a tail (which can be another HCons or HSingle).
Fields§
§head: HThe first element of this list segment.
tail: TThe remaining elements (another HCons or HSingle).
Implementations§
Trait Implementations§
Source§impl<'de, H, T> Deserialize<'de> for HCons<H, T>where
H: Deserialize<'de>,
T: Deserialize<'de>,
impl<'de, H, T> Deserialize<'de> for HCons<H, T>where
H: Deserialize<'de>,
T: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<S, Ctx, Err, T> InstructionList<Ctx, Err> for HCons<StepWrapper<S, Ctx, Err>, T>
Implementation for multi-element list (recursive case).
impl<S, Ctx, Err, T> InstructionList<Ctx, Err> for HCons<StepWrapper<S, Ctx, Err>, T>
Implementation for multi-element list (recursive case).
Source§fn execute_all<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 mut Ctx,
state: &'life2 mut ExecutionState,
) -> Pin<Box<dyn Future<Output = BlockResult<Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn execute_all<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 mut Ctx,
state: &'life2 mut ExecutionState,
) -> Pin<Box<dyn Future<Output = BlockResult<Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Execute all instructions in forward order.
Source§fn compensate_all<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 mut Ctx,
state: &'life2 mut ExecutionState,
) -> Pin<Box<dyn Future<Output = Result<CompensationOutcome, Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn compensate_all<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ctx: &'life1 mut Ctx,
state: &'life2 mut ExecutionState,
) -> Pin<Box<dyn Future<Output = Result<CompensationOutcome, Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Compensate executed instructions in reverse order.
Source§fn execute_at<'life0, 'life1, 'async_trait>(
&'life0 self,
index: usize,
ctx: &'life1 mut Ctx,
) -> Pin<Box<dyn Future<Output = Result<StepOutcome, Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute_at<'life0, 'life1, 'async_trait>(
&'life0 self,
index: usize,
ctx: &'life1 mut Ctx,
) -> Pin<Box<dyn Future<Output = Result<StepOutcome, Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute a single step at the given index.
Source§fn compensate_at<'life0, 'life1, 'async_trait>(
&'life0 self,
index: usize,
ctx: &'life1 mut Ctx,
) -> Pin<Box<dyn Future<Output = Result<CompensationOutcome, Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn compensate_at<'life0, 'life1, 'async_trait>(
&'life0 self,
index: usize,
ctx: &'life1 mut Ctx,
) -> Pin<Box<dyn Future<Output = Result<CompensationOutcome, Err>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Compensate a single step at the given index.
Source§fn retry_policy_at(&self, index: usize) -> RetryPolicy
fn retry_policy_at(&self, index: usize) -> RetryPolicy
Get the retry policy for the step at the given index.
Auto Trait Implementations§
impl<H, T> Freeze for HCons<H, T>
impl<H, T> RefUnwindSafe for HCons<H, T>where
H: RefUnwindSafe,
T: RefUnwindSafe,
impl<H, T> Send for HCons<H, T>
impl<H, T> Sync for HCons<H, T>
impl<H, T> Unpin for HCons<H, T>
impl<H, T> UnwindSafe for HCons<H, T>where
H: UnwindSafe,
T: 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