pub enum ActionResult {
Retract(FactHandle),
RetractByType(String),
Update(FactHandle),
ActivateAgendaGroup(String),
InsertFact {
fact_type: String,
data: TypedFacts,
},
InsertLogicalFact {
fact_type: String,
data: TypedFacts,
rule_name: String,
premises: Vec<FactHandle>,
},
CallFunction {
function_name: String,
args: Vec<String>,
},
ScheduleRule {
rule_name: String,
delay_ms: u64,
},
None,
}Expand description
Result of executing a rule action Actions can return side effects that need to be handled by the engine
Variants§
Retract(FactHandle)
Retract a fact by handle
RetractByType(String)
Retract a fact by fact type (first matching fact)
Update(FactHandle)
Update/modify a fact (trigger re-evaluation)
ActivateAgendaGroup(String)
Activate an agenda group
InsertFact
Insert a new fact
InsertLogicalFact
Insert a logical fact (with justification)
CallFunction
Call a custom function (requires function registry)
ScheduleRule
Schedule a rule to fire later
None
No side effect, just modify facts
Trait Implementations§
Source§impl Clone for ActionResult
impl Clone for ActionResult
Source§fn clone(&self) -> ActionResult
fn clone(&self) -> ActionResult
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ActionResult
impl RefUnwindSafe for ActionResult
impl Send for ActionResult
impl Sync for ActionResult
impl Unpin for ActionResult
impl UnwindSafe for ActionResult
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> 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>
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