wow_world_base/inner/shared/
activate_taxi_reply_vanilla_tbc_wrath.rs

1/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/movement/smsg/smsg_activatetaxireply.wowm:3`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/movement/smsg/smsg_activatetaxireply.wowm#L3):
2/// ```text
3/// enum ActivateTaxiReply : u32 {
4///     OK = 0;
5///     UNSPECIFIED_SERVER_ERROR = 1;
6///     NO_SUCH_PATH = 2;
7///     NOT_ENOUGH_MONEY = 3;
8///     TOO_FAR_AWAY = 4;
9///     NO_VENDOR_NEARBY = 5;
10///     NOT_VISITED = 6;
11///     PLAYER_BUSY = 7;
12///     PLAYER_ALREADY_MOUNTED = 8;
13///     PLAYER_SHAPE_SHIFTED = 9;
14///     PLAYER_MOVING = 10;
15///     SAME_NODE = 11;
16///     NOT_STANDING = 12;
17/// }
18/// ```
19#[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