use super::FactHandle;
#[derive(Debug, Clone)]
pub enum ActionResult {
Retract(FactHandle),
RetractByType(String),
Update(FactHandle),
ActivateAgendaGroup(String),
InsertFact {
fact_type: String,
data: super::TypedFacts,
},
InsertLogicalFact {
fact_type: String,
data: super::TypedFacts,
rule_name: String,
premises: Vec<FactHandle>,
},
CallFunction {
function_name: String,
args: Vec<String>,
},
ScheduleRule { rule_name: String, delay_ms: u64 },
None,
}
#[derive(Debug, Clone, Default)]
pub struct ActionResults {
pub results: Vec<ActionResult>,
}
impl ActionResults {
pub fn new() -> Self {
Self {
results: Vec::new(),
}
}
pub fn add(&mut self, result: ActionResult) {
self.results.push(result);
}
pub fn is_empty(&self) -> bool {
self.results.is_empty()
}
pub fn len(&self) -> usize {
self.results.len()
}
}