battler_data/abilities/
ability_flag.rs1use serde_string_enum::{
2 DeserializeLabeledStringEnum,
3 SerializeLabeledStringEnum,
4};
5
6#[derive(
9 Debug, Clone, PartialEq, Eq, Hash, SerializeLabeledStringEnum, DeserializeLabeledStringEnum,
10)]
11pub enum AbilityFlag {
12 #[string = "Breakable"]
14 Breakable,
15 #[string = "EvasionRaising"]
17 EvasionRaising,
18 #[string = "NoEntrainment"]
20 NoEntrainment,
21 #[string = "NoEntrainmentTarget"]
23 NoEntrainmentTarget,
24 #[string = "NoRolePlay"]
26 NoRolePlay,
27 #[string = "NoSimpleBeam"]
29 NoSimpleBeam,
30 #[string = "NoSkillSwap"]
32 NoSkillSwap,
33 #[string = "NoTrace"]
35 NoTrace,
36 #[string = "NoTransform"]
38 NoTransform,
39 #[string = "NoWorrySeed"]
41 NoWorrySeed,
42 #[string = "Permanent"]
44 Permanent,
45}
46
47#[cfg(test)]
48mod ability_flag_test {
49 use crate::{
50 AbilityFlag,
51 test_util::{
52 test_string_deserialization,
53 test_string_serialization,
54 },
55 };
56
57 #[test]
58 fn serializes_to_string() {
59 test_string_serialization(AbilityFlag::EvasionRaising, "EvasionRaising");
60 }
61
62 #[test]
63 fn deserializes_lowercase() {
64 test_string_deserialization("evasionraising", AbilityFlag::EvasionRaising);
65 }
66}