tf2_enum/
effect_type.rs

1use serde::{Deserialize, Serialize};
2use strum::{Display, EnumCount, EnumIter, EnumString};
3
4/// Effect type.
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 EffectType {
25    Neutral,
26    Positive,
27    Negative,
28    Unusual,
29    ValueIsFromLookupTable,
30    Strange,
31}
32
33#[cfg(test)]
34mod tests {
35    use super::*;
36    
37    #[test]
38    fn serializes() {
39        let json = serde_json::to_string(&EffectType::Neutral).unwrap();
40        assert_eq!(json, r#""neutral""#);
41    }
42
43    #[test]
44    fn deserializes() {
45        let json = r#""neutral""#;
46        let variant: EffectType = serde_json::from_str(json).unwrap();
47        assert_eq!(variant, EffectType::Neutral);
48    }
49}