artifacts/models/
item_type.rs1use crate::models;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
5#[cfg_attr(feature = "specta", derive(specta::Type))]
6pub enum ItemType {
7    #[serde(rename = "utility")]
8    Utility,
9    #[serde(rename = "body_armor")]
10    BodyArmor,
11    #[serde(rename = "weapon")]
12    Weapon,
13    #[serde(rename = "resource")]
14    Resource,
15    #[serde(rename = "leg_armor")]
16    LegArmor,
17    #[serde(rename = "helmet")]
18    Helmet,
19    #[serde(rename = "boots")]
20    Boots,
21    #[serde(rename = "shield")]
22    Shield,
23    #[serde(rename = "amulet")]
24    Amulet,
25    #[serde(rename = "ring")]
26    Ring,
27    #[serde(rename = "artifact")]
28    Artifact,
29    #[serde(rename = "currency")]
30    Currency,
31    #[serde(rename = "consumable")]
32    Consumable,
33    #[serde(rename = "rune")]
34    Rune,
35    #[serde(rename = "bag")]
36    Bag,
37}
38
39impl std::fmt::Display for ItemType {
40    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
41        match self {
42            Self::Utility => write!(f, "utility"),
43            Self::BodyArmor => write!(f, "body_armor"),
44            Self::Weapon => write!(f, "weapon"),
45            Self::Resource => write!(f, "resource"),
46            Self::LegArmor => write!(f, "leg_armor"),
47            Self::Helmet => write!(f, "helmet"),
48            Self::Boots => write!(f, "boots"),
49            Self::Shield => write!(f, "shield"),
50            Self::Amulet => write!(f, "amulet"),
51            Self::Ring => write!(f, "ring"),
52            Self::Artifact => write!(f, "artifact"),
53            Self::Currency => write!(f, "currency"),
54            Self::Consumable => write!(f, "consumable"),
55            Self::Rune => write!(f, "rune"),
56            Self::Bag => write!(f, "bag"),
57        }
58    }
59}
60
61impl Default for ItemType {
62    fn default() -> ItemType {
63        Self::Utility
64    }
65}