battler_data/moves/
move_category.rs1use serde_string_enum::{
2 DeserializeLabeledStringEnum,
3 SerializeLabeledStringEnum,
4};
5
6#[derive(
8 Debug, Default, Clone, Copy, PartialEq, SerializeLabeledStringEnum, DeserializeLabeledStringEnum,
9)]
10pub enum MoveCategory {
11 #[string = "Physical"]
12 #[default]
13 Physical,
14 #[string = "Special"]
15 Special,
16 #[string = "Status"]
17 Status,
18}
19
20#[cfg(test)]
21mod move_category_test {
22 use crate::{
23 moves::MoveCategory,
24 test_util::{
25 test_string_deserialization,
26 test_string_serialization,
27 },
28 };
29
30 #[test]
31 fn serializes_to_string() {
32 test_string_serialization(MoveCategory::Physical, "Physical");
33 test_string_serialization(MoveCategory::Special, "Special");
34 test_string_serialization(MoveCategory::Status, "Status");
35 }
36
37 #[test]
38 fn deserializes_lowercase() {
39 test_string_deserialization("physical", MoveCategory::Physical);
40 test_string_deserialization("special", MoveCategory::Special);
41 test_string_deserialization("status", MoveCategory::Status);
42 }
43}