pub struct ConflictResolver { /* private fields */ }Expand description
Conflict resolution engine
Enforces ConflictPolicy when multiple commands affect the same target. Maintains an index of active commands by target for efficient conflict detection.
Implementations§
Source§impl ConflictResolver
impl ConflictResolver
Sourcepub async fn check_conflict(
&self,
command: &HierarchicalCommand,
) -> ConflictResult
pub async fn check_conflict( &self, command: &HierarchicalCommand, ) -> ConflictResult
Check if a new command conflicts with existing commands
Returns ConflictResult::Conflict if there are existing commands targeting the same resources.
Sourcepub fn resolve(
&self,
commands: Vec<HierarchicalCommand>,
policy: ConflictPolicy,
) -> Result<HierarchicalCommand>
pub fn resolve( &self, commands: Vec<HierarchicalCommand>, policy: ConflictPolicy, ) -> Result<HierarchicalCommand>
Resolve conflict according to policy
Takes a list of conflicting commands and returns the winning command based on the conflict policy.
Sourcepub async fn register_command(
&self,
command: &HierarchicalCommand,
) -> Result<()>
pub async fn register_command( &self, command: &HierarchicalCommand, ) -> Result<()>
Register a command as active (after conflict resolution)
Sourcepub async fn unregister_command(&self, command_id: &str) -> Result<()>
pub async fn unregister_command(&self, command_id: &str) -> Result<()>
Remove a command from active tracking (when completed/expired)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ConflictResolver
impl !RefUnwindSafe for ConflictResolver
impl Send for ConflictResolver
impl Sync for ConflictResolver
impl Unpin for ConflictResolver
impl UnsafeUnpin for ConflictResolver
impl !UnwindSafe for ConflictResolver
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