pub struct HSingle<H>(pub H);Expand description
Single-element heterogeneous list (base case).
This is the minimal non-empty list, required because HNil doesn’t implement InstructionList.
Tuple Fields§
§0: HImplementations§
Trait Implementations§
Source§impl<'de, H> Deserialize<'de> for HSingle<H>where
H: Deserialize<'de>,
impl<'de, H> Deserialize<'de> for HSingle<H>where
H: 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> InstructionList<Ctx, Err> for HSingle<StepWrapper<S, Ctx, Err>>
Implementation for single-element list (base case).
impl<S, Ctx, Err> InstructionList<Ctx, Err> for HSingle<StepWrapper<S, Ctx, Err>>
Implementation for single-element list (base 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> Freeze for HSingle<H>where
H: Freeze,
impl<H> RefUnwindSafe for HSingle<H>where
H: RefUnwindSafe,
impl<H> Send for HSingle<H>where
H: Send,
impl<H> Sync for HSingle<H>where
H: Sync,
impl<H> Unpin for HSingle<H>where
H: Unpin,
impl<H> UnwindSafe for HSingle<H>where
H: 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