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))]
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}