diff --git a/rust/src/enumable/animal_enum.rs b/rust/src/enumable/animal_enum.rs index fbadeb1d..a206e8a5 100644 --- a/rust/src/enumable/animal_enum.rs +++ b/rust/src/enumable/animal_enum.rs @@ -6,8 +6,8 @@ use strum_macros::EnumIter; #[derive(Debug, Clone, Serialize, Deserialize, EnumIter)] #[serde(rename_all = "camelCase")] pub enum AnimalEnum { - Tiger, - Dog, + Tiger = 1, + Dog = 2, } impl AnimalEnum { @@ -15,6 +15,14 @@ impl AnimalEnum { AnimalEnum::iter().collect::>() } + pub fn of(id: usize) -> AnimalEnum { + AnimalEnum::values() + .into_iter() + .filter(|s| (s.clone() as usize) == id) + .next() + .unwrap() + } + pub fn name(&mut self) -> String { return match self { AnimalEnum::Tiger => "Tiger".to_string(),