From 201cafe329ead43e934bcca84568df9e243be88c Mon Sep 17 00:00:00 2001 From: Kate Korsaro Date: Sun, 16 Nov 2025 08:20:47 +0100 Subject: [PATCH] feat: add enum 'Outcome' --- 01.workspace/oxidice_lib/src/str/mod.rs | 1 + 01.workspace/oxidice_lib/src/str/outcome.rs | 52 +++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 01.workspace/oxidice_lib/src/str/outcome.rs diff --git a/01.workspace/oxidice_lib/src/str/mod.rs b/01.workspace/oxidice_lib/src/str/mod.rs index e6f115a..aab7e54 100644 --- a/01.workspace/oxidice_lib/src/str/mod.rs +++ b/01.workspace/oxidice_lib/src/str/mod.rs @@ -1,3 +1,4 @@ pub mod die; pub mod failed_to; pub mod handful; +pub mod outcome; diff --git a/01.workspace/oxidice_lib/src/str/outcome.rs b/01.workspace/oxidice_lib/src/str/outcome.rs new file mode 100644 index 0000000..b603d83 --- /dev/null +++ b/01.workspace/oxidice_lib/src/str/outcome.rs @@ -0,0 +1,52 @@ +use crate::*; +// use std::fmt::Display; +// use std::str::FromStr; + +#[derive(Debug, PartialEq, PartialOrd, Eq, Ord, Clone, Hash)] +pub enum E { + Scalar(u16), + List(Vec), +} + +// impl Display for E { +// fn fmt(&self, f: &mut std::fmt::Formatter) -> std::result::Result<(), std::fmt::Error> { +// match self { +// Self::NoValue => write!(f, "NoValue"), +// } +// } +// } + +// impl FromStr for E { +// type Err = Box; +// fn from_str(value: &str) -> std::result::Result> { +// match value { +// "NoValue" => Ok(Self::NoValue), +// _ => unreachable!(), +// } +// } +// } + +// #[cfg(test)] +// mod unit_tests { +// use super::*; +// #[test] +// fn check_001() { +// for value in [E::NoValue] { +// match value { +// E::NoValue => assert_eq!( +// E::NoValue, +// E::from_str("NoValue").unwrap() +// ), +// } +// } +// } +// +// #[test] +// fn check_002() { +// for value in [E::NoValue] { +// match value { +// E::NoValue => assert_eq!(&E::NoValue.to_string(), "NoValue"), +// } +// } +// } +// }