pub struct PlanExecutor { /* private fields */ }Expand description
Dry-run ActionExecutor — never mutates state.
Dispatch is registry-validated (M4-B S1): every action’s
Action::name is looked up in the embedded plugin Registry so
unknown action kinds surface as ExecError::UnknownAction with the
same taxonomy as crate::execute::FsExecutor. The planner keeps its
own dry-run implementations (the Tier-1 crate::plugin::ActionPlugin
set is wet-run only) and uses the registry purely as a name oracle.
Useful for grex plan, CI validation, and unit-testing pack semantics.
Safe to call across threads; Clone bumps the inner Arc refcount.
Implementations§
Source§impl PlanExecutor
impl PlanExecutor
Sourcepub fn new() -> Self
pub fn new() -> Self
Construct a fresh planner backed by the full Tier-1 built-in
registry (Registry::bootstrap). Matches the pre-M4-B
constructor shape so existing test sites continue to compile.
Sourcepub fn with_registry(registry: Arc<Registry>) -> Self
pub fn with_registry(registry: Arc<Registry>) -> Self
Construct a planner backed by an explicit registry. Primarily for
tests that want to exercise ExecError::UnknownAction or share
a single registry instance with the wet-run executor.
Trait Implementations§
Source§impl ActionExecutor for PlanExecutor
impl ActionExecutor for PlanExecutor
Source§impl Clone for PlanExecutor
impl Clone for PlanExecutor
Source§fn clone(&self) -> PlanExecutor
fn clone(&self) -> PlanExecutor
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PlanExecutor
impl Debug for PlanExecutor
Auto Trait Implementations§
impl Freeze for PlanExecutor
impl !RefUnwindSafe for PlanExecutor
impl Send for PlanExecutor
impl Sync for PlanExecutor
impl Unpin for PlanExecutor
impl UnsafeUnpin for PlanExecutor
impl !UnwindSafe for PlanExecutor
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