battler_data/mons/
gender.rs1use serde_string_enum::{
2 DeserializeLabeledStringEnum,
3 SerializeLabeledStringEnum,
4};
5
6#[derive(
8 Debug,
9 Default,
10 Clone,
11 Copy,
12 PartialEq,
13 Eq,
14 Hash,
15 SerializeLabeledStringEnum,
16 DeserializeLabeledStringEnum,
17)]
18pub enum Gender {
19 #[string = "U"]
20 #[alias = "Unknown"]
21 #[default]
22 Unknown,
23 #[string = "F"]
24 #[alias = "Female"]
25 Female,
26 #[string = "M"]
27 #[alias = "Male"]
28 Male,
29}
30
31#[cfg(test)]
32mod gender_test {
33 use crate::{
34 mons::Gender,
35 test_util::{
36 test_string_deserialization,
37 test_string_serialization,
38 },
39 };
40
41 #[test]
42 fn serializes_to_string() {
43 test_string_serialization(Gender::Unknown, "U");
44 test_string_serialization(Gender::Female, "F");
45 test_string_serialization(Gender::Male, "M");
46 }
47
48 #[test]
49 fn deserializes_full_name() {
50 test_string_deserialization("Unknown", Gender::Unknown);
51 test_string_deserialization("Female", Gender::Female);
52 test_string_deserialization("Male", Gender::Male);
53 }
54}