usestd::any::{Any, TypeId};usestd::rc::Rc;useanymap2::AnyMap;/// A common trait for all states.
pub(crate)traitAnyState{/// Applies a notion.
fnapply(&self, notion:Rc<dyn Any>);/// Returns a list of notion ids that this state accepts.
fnnotion_ids(&self)->Vec<TypeId>{Vec::new()}/// Creates a state from a possible initialise value.
fncreate(init_states:&mut AnyMap)->SelfwhereSelf: Sized;
}