use crate::knowledge::*; #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] pub enum Item { Apple, BallroomKey, Lumi, } impl From for Noun { fn from(x: Item) -> Self {Noun::Item(x)} } impl TryFrom for Item { type Error = (); fn try_from(v: Noun) -> Result { if let Noun::Item(x) = v { Ok(x) } else { Err(()) } } } impl DisplayNoun for Item { fn display_noun(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { write!(f, "{:?}", self) } }