From 81b66e335c3d3431fd2f03dac158f41ff59221dc Mon Sep 17 00:00:00 2001 From: John Date: Wed, 29 Jan 2025 21:13:58 +0900 Subject: [PATCH] #: Add enum item function --- rust/Cargo.toml | 4 +++- rust/src/enumable/animal_enum.rs | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 41039a9c..642d4120 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -8,12 +8,14 @@ edition = "2021" [dependencies] tokio = { version = "1.33.0", features = ["full"] } lazy_static = "1.4.0" -serde_json = "1.0.117" +serde_json = "1.0.138" serde = { version = "1.0.203", features = ["derive"] } futures = "0.3.30" uuid = { version = "1.8.0", features = ["v4"] } chrono = { version = "0.4.39", features = ["serde"] } async-recursion = "1.0.5" +strum = "0.26" +strum_macros = "0.26" [profile.dev] overflow-checks = true diff --git a/rust/src/enumable/animal_enum.rs b/rust/src/enumable/animal_enum.rs index 59dbe740..fbadeb1d 100644 --- a/rust/src/enumable/animal_enum.rs +++ b/rust/src/enumable/animal_enum.rs @@ -1,7 +1,9 @@ use serde::Deserialize; use serde::Serialize; +use strum::IntoEnumIterator; +use strum_macros::EnumIter; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, EnumIter)] #[serde(rename_all = "camelCase")] pub enum AnimalEnum { Tiger, @@ -10,11 +12,9 @@ pub enum AnimalEnum { impl AnimalEnum { pub fn values() -> Vec { - return [AnimalEnum::Tiger, AnimalEnum::Dog].to_vec(); + AnimalEnum::iter().collect::>() } -} -impl AnimalEnum { pub fn name(&mut self) -> String { return match self { AnimalEnum::Tiger => "Tiger".to_string(),