use serde_string_enum::{
DeserializeLabeledStringEnum,
SerializeLabeledStringEnum,
};
#[derive(
Debug, Clone, PartialEq, Eq, Hash, SerializeLabeledStringEnum, DeserializeLabeledStringEnum,
)]
pub enum AbilityFlag {
#[string = "Breakable"]
Breakable,
#[string = "EvasionRaising"]
EvasionRaising,
#[string = "NoEntrainment"]
NoEntrainment,
#[string = "NoEntrainmentTarget"]
NoEntrainmentTarget,
#[string = "NoRolePlay"]
NoRolePlay,
#[string = "NoSimpleBeam"]
NoSimpleBeam,
#[string = "NoSkillSwap"]
NoSkillSwap,
#[string = "NoTrace"]
NoTrace,
#[string = "NoTransform"]
NoTransform,
#[string = "NoWorrySeed"]
NoWorrySeed,
#[string = "Permanent"]
Permanent,
}
#[cfg(test)]
mod ability_flag_test {
use crate::{
AbilityFlag,
test_util::{
test_string_deserialization,
test_string_serialization,
},
};
#[test]
fn serializes_to_string() {
test_string_serialization(AbilityFlag::EvasionRaising, "EvasionRaising");
}
#[test]
fn deserializes_lowercase() {
test_string_deserialization("evasionraising", AbilityFlag::EvasionRaising);
}
}