Skip to main content

artifacts/models/
item_type.rs

1use 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))]
6#[derive(Default)]
7pub enum ItemType {
8    #[serde(rename = "utility")]
9    #[default]
10    Utility,
11    #[serde(rename = "body_armor")]
12    BodyArmor,
13    #[serde(rename = "weapon")]
14    Weapon,
15    #[serde(rename = "resource")]
16    Resource,
17    #[serde(rename = "leg_armor")]
18    LegArmor,
19    #[serde(rename = "helmet")]
20    Helmet,
21    #[serde(rename = "boots")]
22    Boots,
23    #[serde(rename = "shield")]
24    Shield,
25    #[serde(rename = "amulet")]
26    Amulet,
27    #[serde(rename = "ring")]
28    Ring,
29    #[serde(rename = "artifact")]
30    Artifact,
31    #[serde(rename = "currency")]
32    Currency,
33    #[serde(rename = "consumable")]
34    Consumable,
35    #[serde(rename = "rune")]
36    Rune,
37    #[serde(rename = "bag")]
38    Bag,
39}
40
41impl std::fmt::Display for ItemType {
42    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
43        match self {
44            Self::Utility => write!(f, "utility"),
45            Self::BodyArmor => write!(f, "body_armor"),
46            Self::Weapon => write!(f, "weapon"),
47            Self::Resource => write!(f, "resource"),
48            Self::LegArmor => write!(f, "leg_armor"),
49            Self::Helmet => write!(f, "helmet"),
50            Self::Boots => write!(f, "boots"),
51            Self::Shield => write!(f, "shield"),
52            Self::Amulet => write!(f, "amulet"),
53            Self::Ring => write!(f, "ring"),
54            Self::Artifact => write!(f, "artifact"),
55            Self::Currency => write!(f, "currency"),
56            Self::Consumable => write!(f, "consumable"),
57            Self::Rune => write!(f, "rune"),
58            Self::Bag => write!(f, "bag"),
59        }
60    }
61}