tf2_enum/
description_format.rs1use serde::{Deserialize, Serialize};
2use strum::{Display, EnumCount, EnumIter, EnumString};
3
4#[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)]
24 pub enum DescriptionFormat {
25 ValueIsAdditive,
26 ValueIsPercentage,
27 ValueIsInvertedPercentage,
28 ValueIsAdditivePercentage,
29 ValueIsOr,
30 ValueIsDate,
31 ValueIsParticleIndex,
32 ValueIsAccountId,
33 ValueIsItemDef,
34 ValueIsFromLookupTable,
35 VisualsMvmBoss,
36 #[strum(serialize = "value_is_killstreakeffect_index")]
37 #[serde(rename = "value_is_killstreakeffect_index")]
38 ValueIsKillstreakEffectIndex,
39 #[strum(serialize = "value_is_killstreak_idleeffect_index")]
40 #[serde(rename = "value_is_killstreak_idleeffect_index")]
41 ValueIsKillstreakIdleEffectIndex,
42 }
43
44 #[cfg(test)]
45 mod tests {
46 use super::*;
47
48 #[test]
49 fn serializes() {
50 let json = serde_json::to_string(&DescriptionFormat::ValueIsAdditive).unwrap();
51 assert_eq!(json, r#""value_is_additive""#);
52
53 let json = serde_json::to_string(&DescriptionFormat::ValueIsKillstreakEffectIndex).unwrap();
54 assert_eq!(json, r#""value_is_killstreakeffect_index""#);
55 }
56
57 #[test]
58 fn deserializes() {
59 let json = r#""value_is_additive""#;
60 let variant: DescriptionFormat = serde_json::from_str(json).unwrap();
61 assert_eq!(variant, DescriptionFormat::ValueIsAdditive);
62
63 let json = r#""value_is_killstreakeffect_index""#;
64 let variant: DescriptionFormat = serde_json::from_str(json).unwrap();
65 assert_eq!(variant, DescriptionFormat::ValueIsKillstreakEffectIndex);
66 }
67 }
68