#[non_exhaustive]pub enum StepKind {
Symlink {
src: PathBuf,
dst: PathBuf,
kind: SymlinkKind,
backup: bool,
normalize: bool,
},
Unlink {
dst: PathBuf,
},
Env {
name: String,
value: String,
scope: EnvScope,
},
Mkdir {
path: PathBuf,
mode: Option<String>,
},
Rmdir {
path: PathBuf,
backup: bool,
force: bool,
},
Require {
outcome: PredicateOutcome,
on_fail: RequireOnFail,
},
When {
branch_taken: bool,
nested_steps: Vec<ExecStep>,
},
Exec {
cmdline: String,
cwd: Option<PathBuf>,
on_fail: ExecOnFail,
shell: bool,
},
PackSkipped {
actions_hash: String,
},
}Expand description
Variant-specific detail for a recorded step.
Paths are PathBuf rather than String because after expansion every
path field is a concrete OS path. Command lines remain String
because argv joining for display is lossy by design — the wet-run
executor re-reads the underlying crate::pack::ExecSpec when spawning.
Marked #[non_exhaustive] so the M4 plugin layer can contribute new
step-detail shapes without breaking downstream renderers.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Symlink
Resolved symlink descriptor.
Fields
kind: SymlinkKindLink-kind selector, passed through from the action.
Unlink
Resolved unlink descriptor — synthesized inverse of
StepKind::Symlink for auto-reverse teardown (R-M5-09).
Env
Resolved environment-variable assignment.
Fields
Mkdir
Resolved mkdir descriptor.
Rmdir
Resolved rmdir descriptor.
Fields
Require
Resolved require gate.
Fields
outcome: PredicateOutcomeWhether the predicate tree held.
on_fail: RequireOnFailBehaviour configured for unsatisfied outcomes.
When
Resolved when gate.
Fields
Exec
Resolved exec descriptor.
Fields
on_fail: ExecOnFailError-propagation policy.
PackSkipped
Dedicated pack-level skip detail. Emitted when a pack’s
actions_hash matches a prior lockfile entry and the sync layer
short-circuits the entire pack. Replaces the M4-B proxy of
Require { Satisfied, Skip } with action_name == "pack".
Trait Implementations§
Auto Trait Implementations§
impl Freeze for StepKind
impl RefUnwindSafe for StepKind
impl Send for StepKind
impl Sync for StepKind
impl Unpin for StepKind
impl UnsafeUnpin for StepKind
impl UnwindSafe for StepKind
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
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