wow_world_base/inner/shared/
gm_ticket_response_vanilla_tbc_wrath.rs1#[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