diff --git a/Cargo.toml b/Cargo.toml index 52c528e..ccd7a08 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -32,4 +32,6 @@ lazy_static = "1.4.0" barrel = { version = "0.6.5", features = ["pg"] } refinery = { version = "0.3.0", features = ["postgres"] } sqlx = { version = "0.4.0-beta.1", features = ["postgres", "json", "chrono"] } +strum = "0.19.5" +strum_macros = "0.19" diff --git a/src/entity/item/armor.rs b/src/entity/item/armor.rs index c3cefb5..a87c974 100644 --- a/src/entity/item/armor.rs +++ b/src/entity/item/armor.rs @@ -7,7 +7,7 @@ pub enum ItemParseError { InvalidArmorType, } -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display, strum_macros::EnumIter)] pub enum ArmorType { Frame, Armor, diff --git a/src/entity/item/esweapon.rs b/src/entity/item/esweapon.rs index c8713db..ace5ec1 100644 --- a/src/entity/item/esweapon.rs +++ b/src/entity/item/esweapon.rs @@ -9,7 +9,7 @@ pub enum ItemParseError { InvalidESWeaponName, } -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize, strum_macros::EnumIter)] pub enum ESWeaponType { Saber = 0, Sword, @@ -121,7 +121,7 @@ impl ESWeaponType { } } -#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)] +#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize, strum_macros::EnumIter)] pub enum ESWeaponSpecial { Jellen = 1, Zalure, diff --git a/src/entity/item/mag.rs b/src/entity/item/mag.rs index 55222c8..0cb0384 100644 --- a/src/entity/item/mag.rs +++ b/src/entity/item/mag.rs @@ -64,7 +64,7 @@ pub enum ItemParseError { InvalidMagBytes, } -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display, strum_macros::EnumIter)] pub enum MagType { Mag, Varuna, diff --git a/src/entity/item/shield.rs b/src/entity/item/shield.rs index 6e69b43..852e3a0 100644 --- a/src/entity/item/shield.rs +++ b/src/entity/item/shield.rs @@ -6,7 +6,7 @@ pub enum ItemParseError { InvalidShieldType, } -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display, strum_macros::EnumIter)] pub enum ShieldType { Barrier, Shield, diff --git a/src/entity/item/tech.rs b/src/entity/item/tech.rs index 0403afa..49882fc 100644 --- a/src/entity/item/tech.rs +++ b/src/entity/item/tech.rs @@ -1,7 +1,7 @@ use serde::{Serialize, Deserialize}; -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display, strum_macros::EnumIter)] pub enum Technique { Foie, Gifoie, diff --git a/src/entity/item/tool.rs b/src/entity/item/tool.rs index 09ef9a5..707b61b 100644 --- a/src/entity/item/tool.rs +++ b/src/entity/item/tool.rs @@ -6,7 +6,7 @@ pub enum ItemParseError { InvalidToolType, } -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display, strum_macros::EnumIter)] pub enum ToolType { Monomate, Dimate, diff --git a/src/entity/item/unit.rs b/src/entity/item/unit.rs index 3e2de42..e7731fc 100644 --- a/src/entity/item/unit.rs +++ b/src/entity/item/unit.rs @@ -6,7 +6,7 @@ pub enum ItemParseError { InvalidUnitType, } -#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)] +#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display, strum_macros::EnumIter)] pub enum UnitType { KnightPower, GeneralPower, diff --git a/src/entity/item/weapon.rs b/src/entity/item/weapon.rs index a692677..3b70e4a 100644 --- a/src/entity/item/weapon.rs +++ b/src/entity/item/weapon.rs @@ -45,7 +45,7 @@ impl WeaponAttribute { } -#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize)] +#[derive(Debug, Copy, Clone, PartialEq, Serialize, Deserialize, strum_macros::EnumIter)] pub enum WeaponSpecial { Draw = 1, Drain, @@ -141,7 +141,7 @@ impl WeaponSpecial { } } -#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display)] +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize, enum_utils::FromStr, derive_more::Display, strum_macros::EnumIter)] pub enum WeaponType { Saber, Brand,