pub struct LastFailure {
pub step_id: StepId,
pub step_ref: Option<String>,
pub verdict_value: Value,
}Expand description
GH #76 error surface: single-slot breadcrumb the dispatcher writes when a step
aborts the flow (currently: crate::core::state::DispatchOutcome::Blocked),
so the surrounding crate::service::task_launch::TaskLaunchService::launch
map_err closure can lift failed_step + verdict_value off the eval
boundary into the structured crate::service::task_launch::TaskLaunchError::FlowEval
variant. Sibling to step_entries (append-only per-step trace) — this
slot is last-write-wins because only ONE aborting step matters for the
eval’s terminal error envelope, and flow-ir stops dispatching further
steps after EvalError::DispatcherError.
Fields§
§step_id: StepIdThe StepId (dispatch-time tid) the dispatcher assigned to the
aborting step.
step_ref: Option<String>The Blueprint Step.ref that dispatched the aborting step, if
known (dispatcher fills this from its own ref_ param — never None
on the current write path, but modeled Option because the
LastFailure shape is a public read surface and future breadcrumb
writers may not have a ref in hand).
verdict_value: ValueThe verdict value the aborting step carried
(e.g. DispatchOutcome::Blocked(v)’s v, cloned by the dispatcher
before mapping the outcome to EvalError::DispatcherError).
Trait Implementations§
Source§impl Clone for LastFailure
impl Clone for LastFailure
Source§fn clone(&self) -> LastFailure
fn clone(&self) -> LastFailure
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for LastFailure
impl RefUnwindSafe for LastFailure
impl Send for LastFailure
impl Sync for LastFailure
impl Unpin for LastFailure
impl UnsafeUnpin for LastFailure
impl UnwindSafe for LastFailure
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more