summaryrefslogtreecommitdiff
path: root/crates/elfmind/src/noun
diff options
context:
space:
mode:
Diffstat (limited to 'crates/elfmind/src/noun')
-rw-r--r--crates/elfmind/src/noun/character.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/crates/elfmind/src/noun/character.rs b/crates/elfmind/src/noun/character.rs
index e6029c0..800b0de 100644
--- a/crates/elfmind/src/noun/character.rs
+++ b/crates/elfmind/src/noun/character.rs
@@ -39,3 +39,15 @@ pub enum CharacterMasked {
Rat,
Pig,
}
+impl From<CharacterMasked> for Noun { fn from(x: CharacterMasked) -> Self {Noun::CharacterMasked(x)} }
+impl TryFrom<Noun> for CharacterMasked {
+ type Error = ();
+ fn try_from(v: Noun) -> Result<Self, Self::Error> {
+ if let Noun::CharacterMasked(x) = v { Ok(x) } else { Err(()) }
+ }
+}
+impl DisplayNoun for CharacterMasked {
+ fn display_noun(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ write!(f, "{:?}", self)
+ }
+}