pub struct LinearizedExecutor<M>{ /* private fields */ }Expand description
Transition-linearized execution with separately ordered output dispatch.
Implementations§
Source§impl<M> LinearizedExecutor<M>
impl<M> LinearizedExecutor<M>
Sourcepub fn submit(&self, input: M::Input) -> <M::Output as OutputEvidence>::Evidence
pub fn submit(&self, input: M::Input) -> <M::Output as OutputEvidence>::Evidence
Advance and enqueue one output at the same linearization point.
§Panics
Panics after synchronization poison or a transition panic that consumed the affine machine state.
Sourcepub fn evidence(&self) -> Option<<M::Output as OutputEvidence>::Evidence>
pub fn evidence(&self) -> Option<<M::Output as OutputEvidence>::Evidence>
Clone the evidence installed by the latest linearized transition.
§Panics
Panics if executor synchronization was poisoned.
Sourcepub fn dispatch_pending<H>(&self, handler: &H) -> DispatchOutcomewhere
H: OutputHandler<M::Output>,
pub fn dispatch_pending<H>(&self, handler: &H) -> DispatchOutcomewhere
H: OutputHandler<M::Output>,
Dispatch queued outputs until empty, or contribute them to another owner.
DispatchOutcome::OwnedElsewhere means another caller owns dispatch
and this call is fire-and-forget; it does not mean the caller’s output
completed. If a handler panics, its owned output is dropped exactly once
and a later call resumes with the remaining queue.
§Panics
Panics if executor synchronization was poisoned by a transition panic
in LinearizedExecutor::submit.