wow_world_base/inner/shared/
activate_taxi_reply_vanilla_tbc_wrath.rs1#[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Copy, Clone)]
20#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
21pub enum ActivateTaxiReply {
22 Ok,
23 UnspecifiedServerError,
24 NoSuchPath,
25 NotEnoughMoney,
26 TooFarAway,
27 NoVendorNearby,
28 NotVisited,
29 PlayerBusy,
30 PlayerAlreadyMounted,
31 PlayerShapeShifted,
32 PlayerMoving,
33 SameNode,
34 NotStanding,
35}
36
37impl ActivateTaxiReply {
38 pub const fn as_int(&self) -> u32 {
39 match self {
40 Self::Ok => 0x0,
41 Self::UnspecifiedServerError => 0x1,
42 Self::NoSuchPath => 0x2,
43 Self::NotEnoughMoney => 0x3,
44 Self::TooFarAway => 0x4,
45 Self::NoVendorNearby => 0x5,
46 Self::NotVisited => 0x6,
47 Self::PlayerBusy => 0x7,
48 Self::PlayerAlreadyMounted => 0x8,
49 Self::PlayerShapeShifted => 0x9,
50 Self::PlayerMoving => 0xa,
51 Self::SameNode => 0xb,
52 Self::NotStanding => 0xc,
53 }
54 }
55
56 pub const fn variants() -> [Self; 13] {
57 [
58 Self::Ok,
59 Self::UnspecifiedServerError,
60 Self::NoSuchPath,
61 Self::NotEnoughMoney,
62 Self::TooFarAway,
63 Self::NoVendorNearby,
64 Self::NotVisited,
65 Self::PlayerBusy,
66 Self::PlayerAlreadyMounted,
67 Self::PlayerShapeShifted,
68 Self::PlayerMoving,
69 Self::SameNode,
70 Self::NotStanding,
71 ]
72 }
73
74 pub const fn from_int(value: u32) -> Result<Self, crate::errors::EnumError> {
75 match value {
76 0 => Ok(Self::Ok),
77 1 => Ok(Self::UnspecifiedServerError),
78 2 => Ok(Self::NoSuchPath),
79 3 => Ok(Self::NotEnoughMoney),
80 4 => Ok(Self::TooFarAway),
81 5 => Ok(Self::NoVendorNearby),
82 6 => Ok(Self::NotVisited),
83 7 => Ok(Self::PlayerBusy),
84 8 => Ok(Self::PlayerAlreadyMounted),
85 9 => Ok(Self::PlayerShapeShifted),
86 10 => Ok(Self::PlayerMoving),
87 11 => Ok(Self::SameNode),
88 12 => Ok(Self::NotStanding),
89 v => Err(crate::errors::EnumError::new(NAME, v as i128),)
90 }
91 }
92}
93
94#[cfg(feature = "print-testcase")]
95impl ActivateTaxiReply {
96 pub const fn as_test_case_value(&self) -> &'static str {
97 match self {
98 Self::Ok => "OK",
99 Self::UnspecifiedServerError => "UNSPECIFIED_SERVER_ERROR",
100 Self::NoSuchPath => "NO_SUCH_PATH",
101 Self::NotEnoughMoney => "NOT_ENOUGH_MONEY",
102 Self::TooFarAway => "TOO_FAR_AWAY",
103 Self::NoVendorNearby => "NO_VENDOR_NEARBY",
104 Self::NotVisited => "NOT_VISITED",
105 Self::PlayerBusy => "PLAYER_BUSY",
106 Self::PlayerAlreadyMounted => "PLAYER_ALREADY_MOUNTED",
107 Self::PlayerShapeShifted => "PLAYER_SHAPE_SHIFTED",
108 Self::PlayerMoving => "PLAYER_MOVING",
109 Self::SameNode => "SAME_NODE",
110 Self::NotStanding => "NOT_STANDING",
111 }
112 }
113
114}
115
116const NAME: &str = "ActivateTaxiReply";
117
118impl Default for ActivateTaxiReply {
119 fn default() -> Self {
120 Self::Ok
121 }
122}
123
124impl std::fmt::Display for ActivateTaxiReply {
125 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
126 match self {
127 Self::Ok => f.write_str("Ok"),
128 Self::UnspecifiedServerError => f.write_str("UnspecifiedServerError"),
129 Self::NoSuchPath => f.write_str("NoSuchPath"),
130 Self::NotEnoughMoney => f.write_str("NotEnoughMoney"),
131 Self::TooFarAway => f.write_str("TooFarAway"),
132 Self::NoVendorNearby => f.write_str("NoVendorNearby"),
133 Self::NotVisited => f.write_str("NotVisited"),
134 Self::PlayerBusy => f.write_str("PlayerBusy"),
135 Self::PlayerAlreadyMounted => f.write_str("PlayerAlreadyMounted"),
136 Self::PlayerShapeShifted => f.write_str("PlayerShapeShifted"),
137 Self::PlayerMoving => f.write_str("PlayerMoving"),
138 Self::SameNode => f.write_str("SameNode"),
139 Self::NotStanding => f.write_str("NotStanding"),
140 }
141 }
142}
143
144impl TryFrom<u32> for ActivateTaxiReply {
145 type Error = crate::errors::EnumError;
146 fn try_from(value: u32) -> Result<Self, Self::Error> {
147 Self::from_int(value)
148 }
149}
150
151impl TryFrom<u8> for ActivateTaxiReply {
152 type Error = crate::errors::EnumError;
153 fn try_from(value: u8) -> Result<Self, Self::Error> {
154 Self::from_int(value.into())
155 }
156}
157
158impl TryFrom<u16> for ActivateTaxiReply {
159 type Error = crate::errors::EnumError;
160 fn try_from(value: u16) -> Result<Self, Self::Error> {
161 Self::from_int(value.into())
162 }
163}
164
165impl TryFrom<u64> for ActivateTaxiReply {
166 type Error = crate::errors::EnumError;
167 fn try_from(value: u64) -> Result<Self, Self::Error> {
168 TryInto::<u32>::try_into(value)
169 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
170 .try_into()
171 }
172}
173
174impl TryFrom<i8> for ActivateTaxiReply {
175 type Error = crate::errors::EnumError;
176 fn try_from(value: i8) -> Result<Self, Self::Error> {
177 TryInto::<u32>::try_into(value)
178 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
179 .try_into()
180 }
181}
182
183impl TryFrom<i16> for ActivateTaxiReply {
184 type Error = crate::errors::EnumError;
185 fn try_from(value: i16) -> Result<Self, Self::Error> {
186 TryInto::<u32>::try_into(value)
187 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
188 .try_into()
189 }
190}
191
192impl TryFrom<i32> for ActivateTaxiReply {
193 type Error = crate::errors::EnumError;
194 fn try_from(value: i32) -> Result<Self, Self::Error> {
195 let v = u32::from_le_bytes(value.to_le_bytes());
196 Self::from_int(v)
197 }
198}
199
200impl TryFrom<i64> for ActivateTaxiReply {
201 type Error = crate::errors::EnumError;
202 fn try_from(value: i64) -> Result<Self, Self::Error> {
203 TryInto::<u32>::try_into(value)
204 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
205 .try_into()
206 }
207}
208
209impl TryFrom<usize> for ActivateTaxiReply {
210 type Error = crate::errors::EnumError;
211 fn try_from(value: usize) -> Result<Self, Self::Error> {
212 TryInto::<u32>::try_into(value)
213 .map_err(|_| crate::errors::EnumError::new(NAME, value as i128))?
214 .try_into()
215 }
216}
217