pub mod cleanup; pub mod migrate; pub mod npc_ai; pub mod replenish_resources; pub mod report; pub mod simulate_npcs; pub mod sync_npcs; use super::RtState; use std::fmt; #[derive(Debug)] pub enum RuleError { NoSuchRule(&'static str), } impl fmt::Display for RuleError { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self { Self::NoSuchRule(r) => { write!(f, "tried to fetch rule state '{}' but it does not exist", r) }, } } } pub trait Rule: Sized + Send + Sync + 'static { fn start(rtstate: &mut RtState) -> Result; }