#[non_exhaustive]pub struct HaltedContext {
pub pack: String,
pub action_idx: usize,
pub action_name: String,
pub error: ExecError,
pub recovery_hint: Option<String>,
}Expand description
Rich context attached to a SyncError::Halted variant.
Packages the pack + action position together with the underlying
executor error and an optional human-readable recovery hint. Marked
#[non_exhaustive] so future fields (step transcript, timestamp) can
land without breaking match arms or struct destructures.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.pack: StringName of the pack that owned the halted action.
action_idx: usize0-based index into the pack’s top-level actions vector.
action_name: StringShort action kind tag (e.g. "symlink", "exec").
error: ExecErrorUnderlying executor error.
recovery_hint: Option<String>Optional next-step suggestion for the operator. None when no
generic hint applies — the executor error’s own Display already
tells the story.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HaltedContext
impl RefUnwindSafe for HaltedContext
impl Send for HaltedContext
impl Sync for HaltedContext
impl Unpin for HaltedContext
impl UnsafeUnpin for HaltedContext
impl UnwindSafe for HaltedContext
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
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>
Converts
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>
Converts
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