use serde_string_enum::{
DeserializeLabeledStringEnum,
SerializeLabeledStringEnum,
};
#[derive(
Debug, Clone, PartialEq, Eq, Hash, SerializeLabeledStringEnum, DeserializeLabeledStringEnum,
)]
pub enum ItemFlag {
#[string = "Ball"]
Ball,
#[string = "Battle"]
Battle,
#[string = "Berry"]
Berry,
#[string = "ChoiceLocking"]
ChoiceLocking,
#[string = "DamageReducingBerry"]
DamageReducingBerry,
#[string = "EvasionRaising"]
EvasionRaising,
#[string = "Gem"]
Gem,
#[string = "Medicine"]
Medicine,
#[string = "NoKlutz"]
NoKlutz,
}
#[cfg(test)]
mod item_flag_test {
use crate::{
ItemFlag,
test_util::{
test_string_deserialization,
test_string_serialization,
},
};
#[test]
fn serializes_to_string() {
test_string_serialization(ItemFlag::EvasionRaising, "EvasionRaising");
}
#[test]
fn deserializes_lowercase() {
test_string_deserialization("evasionraising", ItemFlag::EvasionRaising);
}
}