tf2_enum/
craft_class.rs

1use serde::{Deserialize, Serialize};
2use strum::{Display, EnumCount, EnumIter, EnumString};
3
4/// Craft class.
5#[derive(
6    Debug,
7    Clone,
8    Copy,
9    Eq,
10    PartialEq,
11    Ord,
12    PartialOrd,
13    Hash,
14    Display,
15    Deserialize,
16    Serialize,
17    EnumString,
18    EnumIter,
19    EnumCount,
20)]
21#[strum(serialize_all = "snake_case")]
22#[serde(rename_all = "snake_case")]
23#[allow(missing_docs)]
24pub enum CraftClass {
25    Weapon,
26    Hat,
27    CraftBar,
28    HauntedHat,
29    Tool,
30    CraftToken,
31    SupplyCrate,
32}
33
34#[cfg(test)]
35mod tests {
36    use super::*;
37
38    #[test]
39    fn test_craft_class_serialization() {
40        let weapon = CraftClass::Weapon;
41        let hat = CraftClass::Hat;
42        let craft_bar = CraftClass::CraftBar;
43        let haunted_hat = CraftClass::HauntedHat;
44        let tool = CraftClass::Tool;
45        let craft_token = CraftClass::CraftToken;
46        let supply_crate = CraftClass::SupplyCrate;
47
48        assert_eq!(serde_json::to_string(&weapon).unwrap(), "\"weapon\"");
49        assert_eq!(serde_json::to_string(&hat).unwrap(), "\"hat\"");
50        assert_eq!(serde_json::to_string(&craft_bar).unwrap(), "\"craft_bar\"");
51        assert_eq!(serde_json::to_string(&haunted_hat).unwrap(), "\"haunted_hat\"");
52        assert_eq!(serde_json::to_string(&tool).unwrap(), "\"tool\"");
53        assert_eq!(serde_json::to_string(&craft_token).unwrap(), "\"craft_token\"");
54        assert_eq!(serde_json::to_string(&supply_crate).unwrap(), "\"supply_crate\"");
55    }
56}