pub enum ConflictResolutionStrategy {
Salience,
LEX,
MEA,
Depth,
Breadth,
Simplicity,
Complexity,
Random,
}Expand description
Conflict Resolution Strategy
Determines how conflicting activations are ordered in the agenda. Similar to CLIPS and Drools conflict resolution strategies.
Variants§
Salience
Salience-based ordering (default) - Higher salience fires first
LEX
LEX (Recency) - Most recently inserted facts fire first Sorts by the timestamp of the most recent fact used in the activation
MEA
MEA (Recency + Specificity) - LEX + more specific rules first Combines recency with condition count (more conditions = more specific)
Depth
Depth-first - Fire rule immediately after insertion Re-evaluates agenda after each rule fires
Breadth
Breadth-first - Collect all activations before firing (default) Fires all activations in current cycle before re-evaluating
Simplicity
Simplicity - Rules with fewer conditions fire first Simpler rules are prioritized
Complexity
Complexity - Rules with more conditions fire first More complex/specific rules are prioritized
Random
Random - Random ordering Useful for testing non-deterministic behavior
Trait Implementations§
Source§impl Clone for ConflictResolutionStrategy
impl Clone for ConflictResolutionStrategy
Source§fn clone(&self) -> ConflictResolutionStrategy
fn clone(&self) -> ConflictResolutionStrategy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConflictResolutionStrategy
impl Debug for ConflictResolutionStrategy
impl Copy for ConflictResolutionStrategy
impl Eq for ConflictResolutionStrategy
impl StructuralPartialEq for ConflictResolutionStrategy
Auto Trait Implementations§
impl Freeze for ConflictResolutionStrategy
impl RefUnwindSafe for ConflictResolutionStrategy
impl Send for ConflictResolutionStrategy
impl Sync for ConflictResolutionStrategy
impl Unpin for ConflictResolutionStrategy
impl UnwindSafe for ConflictResolutionStrategy
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> 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