pub struct ApplyEngine { /* private fields */ }Expand description
Executes selected update items in dependency-safe order with failure isolation.
§Algorithm
- Separate selected items from deselected (held back).
- Sort selected items in dependency order (topological sort).
- Execute each item:
a. Check if any dependency has failed → mark
BlockedByFailure. b. Execute via the configuredApplyExecutor. c. Record success or failure. - Unrelated items continue even if some fail.
Implementations§
Source§impl ApplyEngine
impl ApplyEngine
Sourcepub fn new(executor: impl ApplyExecutor + 'static) -> Self
pub fn new(executor: impl ApplyExecutor + 'static) -> Self
Create a new apply engine with the given executor.
Sourcepub fn apply(
&self,
items: &[PlannerItem],
options: &ApplyOptions,
) -> ApplySummary
pub fn apply( &self, items: &[PlannerItem], options: &ApplyOptions, ) -> ApplySummary
Apply the given planner items.
Items that are not selected are held back. Selected items are executed in dependency-safe order with failure isolation.
Auto Trait Implementations§
impl !RefUnwindSafe for ApplyEngine
impl !Send for ApplyEngine
impl !Sync for ApplyEngine
impl !UnwindSafe for ApplyEngine
impl Freeze for ApplyEngine
impl Unpin for ApplyEngine
impl UnsafeUnpin for ApplyEngine
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