File size: 496 Bytes
224e773 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #[derive(Debug, Clone)]
pub enum Action {
SetFact(String, String),
RemoveFact(String),
Batch(Vec<Action>),
}
impl Action {
pub fn apply(&self, world: &mut crate::WorldState) -> hyperkitty_core::Result<()> {
match self {
Action::SetFact(k, v) => { world.set(k.clone(), v.clone()); Ok(()) }
Action::RemoveFact(k) => { world.facts.remove(k); Ok(()) }
Action::Batch(acts) => { for a in acts { a.apply(world)?; } Ok(()) }
}
}
}
|