use crate::effect::Effect;
use crate::world_state::WorldState;
#[derive(Clone, Eq, PartialEq, Hash)]
pub enum Node {
State(WorldState),
Effect((String, Effect, WorldState)),
}
impl Node {
pub fn state(&self) -> &WorldState {
match self {
Node::State(state) => state,
Node::Effect((_, _, state)) => state,
}
}
}
impl std::fmt::Debug for Node {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Node::Effect(effect) => effect.fmt(f),
Node::State(state) => state.fmt(f),
}
}
}