Skip to main content

cardinal_kernel/rules/
mod.rs

1pub mod schema;
2pub mod query;
3
4use crate::rules::schema::Ruleset;
5use crate::state::gamestate::GameState;
6
7/// Rule module trait: returns commands in response to events or legality overrides.
8pub trait RulesModule {
9    fn on_event(&self, _ctx: &RulesContext, _ev: &crate::model::event::Event) -> Vec<crate::model::command::Command> {
10        Vec::new()
11    }
12
13    fn legal_overrides(&self, _ctx: &RulesContext, _player: crate::ids::PlayerId) -> Vec<crate::model::action::Action> {
14        Vec::new()
15    }
16}
17
18pub struct RulesContext<'a> {
19    pub rules: &'a Ruleset,
20    pub state: &'a GameState,
21}