pub trait SendSettlements: Sized {
type Settlements: Send + ClassifySettlement;
type SourceCustody: Send;
type InterpretationCustody;
// Required methods
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>>,
);
}Expand description
Static settlement product determined solely by one concrete sends value.
Every action item declares its own accepted, rejection, and prerequisite
types. A containing product therefore has one settlement type under every
conforming interpreter. unattempted preserves every item untouched after
an earlier corrupt item stops traversal.
A runtime cannot select another settlement product for the same sends value:
ⓘ
struct RuntimeSettlement;
fn runtime_selected<Runtime>(
progress: &mut Option<behavior::InterpretationProgress<
behavior::InterpreterRequests<behavior::ReportToParent<u8>>,
<behavior::InterpreterRequests<behavior::ReportToParent<u8>> as
behavior::SendSettlements>::InterpretationCustody,
RuntimeSettlement,
>>,
runtime: &mut Runtime,
) -> impl core::future::Future<Output = ()> + Send
where
Runtime: behavior::InterpretItem<
behavior::ReportToParent<u8>,
(),
behavior::Here,
>,
{
<behavior::InterpreterRequests<behavior::ReportToParent<u8>> as
behavior::InterpretSends<Runtime, (), behavior::Here>>::interpret(
progress,
runtime,
)
}Required Associated Types§
type Settlements: Send + ClassifySettlement
type SourceCustody: Send
type InterpretationCustody
Required Methods§
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>>, )
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.