wow_world_base/inner/shared/
gm_ticket_response_vanilla_tbc_wrath.rs

1/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/gamemaster/gamemaster_common.wowm:1`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/gamemaster/gamemaster_common.wowm#L1):
2/// ```text
3/// enum GmTicketResponse : u32 {
4///     NOT_EXIST = 0;
5///     ALREADY_EXIST = 1;
6///     CREATE_SUCCESS = 2;
7///     CREATE_ERROR = 3;
8///     UPDATE_SUCCESS = 4;
9///     UPDATE_ERROR = 5;
10///     TICKET_DELETED = 9;
11/// }
12/// ```
13#[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Copy, Clone)]
14#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
15pub enum GmTicketResponse {
16    NotExist,
17    AlreadyExist,
18    CreateSuccess,
19    CreateError,
20    UpdateSuccess,
21    UpdateError,
22    TicketDeleted,
23}
24
25impl GmTicketResponse {
26    pub const fn as_int(&self) -> u32 {
27        match self {
28            Self::NotExist => 0x0,
29            Self::AlreadyExist => 0x1,
30            Self::CreateSuccess => 0x2,
31            Self::CreateError => 0x3,
32            Self::UpdateSuccess => 0x4,
33            Self::UpdateError => 0x5,
34            Self::TicketDeleted => 0x9,
35        }
36    }
37
38    pub const fn variants() -> [Self; 7] {
39        [
40            Self::NotExist,
41            Self::AlreadyExist,
42            Self::CreateSuccess,
43            Self::CreateError,
44            Self::UpdateSuccess,
45            Self::UpdateError,
46            Self::TicketDeleted,
47        ]
48    }
49
50    pub const fn from_int(value: u32) -> Result<Self, crate::errors::EnumError> {
51        match value {
52            0 => Ok(Self::NotExist),
53            1 => Ok(Self::AlreadyExist),
54            2 => Ok(Self::CreateSuccess),
55            3 => Ok(Self::CreateError),
56            4 => Ok(Self::UpdateSuccess),
57            5 => Ok(Self::UpdateError),
58            9 => Ok(Self::TicketDeleted),
59            v => Err(crate::errors::EnumError::new(NAME, v as i128),)
60        }
61    }
62}
63
64#[cfg(feature = "print-testcase")]
65impl GmTicketResponse {
66    pub const fn as_test_case_value(&self) -> &'static str {
67        match self {
68            Self::NotExist => "NOT_EXIST",
69            Self::AlreadyExist => "ALREADY_EXIST",
70            Self::CreateSuccess => "CREATE_SUCCESS",
71            Self::CreateError => "CREATE_ERROR",
72            Self::UpdateSuccess => "UPDATE_SUCCESS",
73            Self::UpdateError => "UPDATE_ERROR",
74            Self::TicketDeleted => "TICKET_DELETED",
75        }
76    }
77
78}
79
80const NAME: &str = "GmTicketResponse";
81
82impl Default for GmTicketResponse {
83    fn default() -> Self {
84        Self::NotExist
85    }
86}
87
88impl std::fmt::Display for GmTicketResponse {
89    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
90        match self {
91            Self::NotExist => f.write_str("NotExist"),
92            Self::AlreadyExist => f.write_str("AlreadyExist"),
93            Self::CreateSuccess => f.write_str("CreateSuccess"),
94            Self::CreateError => f.write_str("CreateError"),
95            Self::UpdateSuccess => f.write_str("UpdateSuccess"),
96            Self::UpdateError => f.write_str("UpdateError"),
97            Self::TicketDeleted => f.write_str("TicketDeleted"),
98        }
99    }
100}
101
102impl TryFrom<u32> for GmTicketResponse {
103    type Error = crate::errors::EnumError;
104    fn try_from(value: u32) -> Result<Self, Self::Error> {
105        Self::from_int(value)
106    }
107}
108
109impl TryFrom<u8> for GmTicketResponse {
110    type Error = crate::errors::EnumError;
111    fn try_from(value: u8) -> Result<Self, Self::Error> {
112        Self::from_int(value.into())
113    }
114}
115
116impl TryFrom<u16> for GmTicketResponse {
117    type Error = crate::errors::EnumError;
118    fn try_from(value: u16) -> Result<Self, Self::Error> {
119        Self::from_int(value.into())
120    }
121}
122
123impl TryFrom<u64> for GmTicketResponse {
124    type Error = crate::errors::EnumError;
125    fn try_from(value: u64) -> Result<Self, Self::Error> {
126        TryInto::<u32>::try_into(value)
127            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
128            .try_into()
129    }
130}
131
132impl TryFrom<i8> for GmTicketResponse {
133    type Error = crate::errors::EnumError;
134    fn try_from(value: i8) -> Result<Self, Self::Error> {
135        TryInto::<u32>::try_into(value)
136            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
137            .try_into()
138    }
139}
140
141impl TryFrom<i16> for GmTicketResponse {
142    type Error = crate::errors::EnumError;
143    fn try_from(value: i16) -> Result<Self, Self::Error> {
144        TryInto::<u32>::try_into(value)
145            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
146            .try_into()
147    }
148}
149
150impl TryFrom<i32> for GmTicketResponse {
151    type Error = crate::errors::EnumError;
152    fn try_from(value: i32) -> Result<Self, Self::Error> {
153        let v = u32::from_le_bytes(value.to_le_bytes());
154        Self::from_int(v)
155    }
156}
157
158impl TryFrom<i64> for GmTicketResponse {
159    type Error = crate::errors::EnumError;
160    fn try_from(value: i64) -> Result<Self, Self::Error> {
161        TryInto::<u32>::try_into(value)
162            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
163            .try_into()
164    }
165}
166
167impl TryFrom<usize> for GmTicketResponse {
168    type Error = crate::errors::EnumError;
169    fn try_from(value: usize) -> Result<Self, Self::Error> {
170        TryInto::<u32>::try_into(value)
171            .map_err(|_| crate::errors::EnumError::new(NAME, value as i128))?
172            .try_into()
173    }
174}
175