wow_world_base/inner/shared/
friend_result_vanilla_tbc.rs

1/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/social/smsg_friend_status.wowm:1`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/social/smsg_friend_status.wowm#L1):
2/// ```text
3/// enum FriendResult : u8 {
4///     DB_ERROR = 0x00;
5///     LIST_FULL = 0x01;
6///     ONLINE = 0x02;
7///     OFFLINE = 0x03;
8///     NOT_FOUND = 0x04;
9///     REMOVED = 0x05;
10///     ADDED_ONLINE = 0x06;
11///     ADDED_OFFLINE = 0x07;
12///     ALREADY = 0x08;
13///     SELF = 0x09;
14///     ENEMY = 0x0A;
15///     IGNORE_FULL = 0x0B;
16///     IGNORE_SELF = 0x0C;
17///     IGNORE_NOT_FOUND = 0x0D;
18///     IGNORE_ALREADY = 0x0E;
19///     IGNORE_ADDED = 0x0F;
20///     IGNORE_REMOVED = 0x10;
21///     IGNORE_AMBIGUOUS = 0x11;
22///     MUTE_FULL = 0x12;
23///     MUTE_SELF = 0x13;
24///     MUTE_NOT_FOUND = 0x14;
25///     MUTE_ALREADY = 0x15;
26///     MUTE_ADDED = 0x16;
27///     MUTE_REMOVED = 0x17;
28///     MUTE_AMBIGUOUS = 0x18;
29///     UNKNOWN19 = 0x19;
30///     UNKNOWN20 = 0x1A;
31/// }
32/// ```
33#[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Copy, Clone)]
34#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
35pub enum FriendResult {
36    DbError,
37    ListFull,
38    Online,
39    Offline,
40    NotFound,
41    Removed,
42    AddedOnline,
43    AddedOffline,
44    Already,
45    SelfX,
46    Enemy,
47    IgnoreFull,
48    IgnoreSelf,
49    IgnoreNotFound,
50    IgnoreAlready,
51    IgnoreAdded,
52    IgnoreRemoved,
53    IgnoreAmbiguous,
54    MuteFull,
55    MuteSelf,
56    MuteNotFound,
57    MuteAlready,
58    MuteAdded,
59    MuteRemoved,
60    MuteAmbiguous,
61    Unknown19,
62    Unknown20,
63}
64
65impl FriendResult {
66    pub const fn as_int(&self) -> u8 {
67        match self {
68            Self::DbError => 0x0,
69            Self::ListFull => 0x1,
70            Self::Online => 0x2,
71            Self::Offline => 0x3,
72            Self::NotFound => 0x4,
73            Self::Removed => 0x5,
74            Self::AddedOnline => 0x6,
75            Self::AddedOffline => 0x7,
76            Self::Already => 0x8,
77            Self::SelfX => 0x9,
78            Self::Enemy => 0xa,
79            Self::IgnoreFull => 0xb,
80            Self::IgnoreSelf => 0xc,
81            Self::IgnoreNotFound => 0xd,
82            Self::IgnoreAlready => 0xe,
83            Self::IgnoreAdded => 0xf,
84            Self::IgnoreRemoved => 0x10,
85            Self::IgnoreAmbiguous => 0x11,
86            Self::MuteFull => 0x12,
87            Self::MuteSelf => 0x13,
88            Self::MuteNotFound => 0x14,
89            Self::MuteAlready => 0x15,
90            Self::MuteAdded => 0x16,
91            Self::MuteRemoved => 0x17,
92            Self::MuteAmbiguous => 0x18,
93            Self::Unknown19 => 0x19,
94            Self::Unknown20 => 0x1a,
95        }
96    }
97
98    pub const fn variants() -> [Self; 27] {
99        [
100            Self::DbError,
101            Self::ListFull,
102            Self::Online,
103            Self::Offline,
104            Self::NotFound,
105            Self::Removed,
106            Self::AddedOnline,
107            Self::AddedOffline,
108            Self::Already,
109            Self::SelfX,
110            Self::Enemy,
111            Self::IgnoreFull,
112            Self::IgnoreSelf,
113            Self::IgnoreNotFound,
114            Self::IgnoreAlready,
115            Self::IgnoreAdded,
116            Self::IgnoreRemoved,
117            Self::IgnoreAmbiguous,
118            Self::MuteFull,
119            Self::MuteSelf,
120            Self::MuteNotFound,
121            Self::MuteAlready,
122            Self::MuteAdded,
123            Self::MuteRemoved,
124            Self::MuteAmbiguous,
125            Self::Unknown19,
126            Self::Unknown20,
127        ]
128    }
129
130    pub const fn from_int(value: u8) -> Result<Self, crate::errors::EnumError> {
131        match value {
132            0 => Ok(Self::DbError),
133            1 => Ok(Self::ListFull),
134            2 => Ok(Self::Online),
135            3 => Ok(Self::Offline),
136            4 => Ok(Self::NotFound),
137            5 => Ok(Self::Removed),
138            6 => Ok(Self::AddedOnline),
139            7 => Ok(Self::AddedOffline),
140            8 => Ok(Self::Already),
141            9 => Ok(Self::SelfX),
142            10 => Ok(Self::Enemy),
143            11 => Ok(Self::IgnoreFull),
144            12 => Ok(Self::IgnoreSelf),
145            13 => Ok(Self::IgnoreNotFound),
146            14 => Ok(Self::IgnoreAlready),
147            15 => Ok(Self::IgnoreAdded),
148            16 => Ok(Self::IgnoreRemoved),
149            17 => Ok(Self::IgnoreAmbiguous),
150            18 => Ok(Self::MuteFull),
151            19 => Ok(Self::MuteSelf),
152            20 => Ok(Self::MuteNotFound),
153            21 => Ok(Self::MuteAlready),
154            22 => Ok(Self::MuteAdded),
155            23 => Ok(Self::MuteRemoved),
156            24 => Ok(Self::MuteAmbiguous),
157            25 => Ok(Self::Unknown19),
158            26 => Ok(Self::Unknown20),
159            v => Err(crate::errors::EnumError::new(NAME, v as i128),)
160        }
161    }
162}
163
164#[cfg(feature = "print-testcase")]
165impl FriendResult {
166    pub const fn as_test_case_value(&self) -> &'static str {
167        match self {
168            Self::DbError => "DB_ERROR",
169            Self::ListFull => "LIST_FULL",
170            Self::Online => "ONLINE",
171            Self::Offline => "OFFLINE",
172            Self::NotFound => "NOT_FOUND",
173            Self::Removed => "REMOVED",
174            Self::AddedOnline => "ADDED_ONLINE",
175            Self::AddedOffline => "ADDED_OFFLINE",
176            Self::Already => "ALREADY",
177            Self::SelfX => "SELF",
178            Self::Enemy => "ENEMY",
179            Self::IgnoreFull => "IGNORE_FULL",
180            Self::IgnoreSelf => "IGNORE_SELF",
181            Self::IgnoreNotFound => "IGNORE_NOT_FOUND",
182            Self::IgnoreAlready => "IGNORE_ALREADY",
183            Self::IgnoreAdded => "IGNORE_ADDED",
184            Self::IgnoreRemoved => "IGNORE_REMOVED",
185            Self::IgnoreAmbiguous => "IGNORE_AMBIGUOUS",
186            Self::MuteFull => "MUTE_FULL",
187            Self::MuteSelf => "MUTE_SELF",
188            Self::MuteNotFound => "MUTE_NOT_FOUND",
189            Self::MuteAlready => "MUTE_ALREADY",
190            Self::MuteAdded => "MUTE_ADDED",
191            Self::MuteRemoved => "MUTE_REMOVED",
192            Self::MuteAmbiguous => "MUTE_AMBIGUOUS",
193            Self::Unknown19 => "UNKNOWN19",
194            Self::Unknown20 => "UNKNOWN20",
195        }
196    }
197
198}
199
200const NAME: &str = "FriendResult";
201
202impl Default for FriendResult {
203    fn default() -> Self {
204        Self::DbError
205    }
206}
207
208impl std::fmt::Display for FriendResult {
209    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
210        match self {
211            Self::DbError => f.write_str("DbError"),
212            Self::ListFull => f.write_str("ListFull"),
213            Self::Online => f.write_str("Online"),
214            Self::Offline => f.write_str("Offline"),
215            Self::NotFound => f.write_str("NotFound"),
216            Self::Removed => f.write_str("Removed"),
217            Self::AddedOnline => f.write_str("AddedOnline"),
218            Self::AddedOffline => f.write_str("AddedOffline"),
219            Self::Already => f.write_str("Already"),
220            Self::SelfX => f.write_str("SelfX"),
221            Self::Enemy => f.write_str("Enemy"),
222            Self::IgnoreFull => f.write_str("IgnoreFull"),
223            Self::IgnoreSelf => f.write_str("IgnoreSelf"),
224            Self::IgnoreNotFound => f.write_str("IgnoreNotFound"),
225            Self::IgnoreAlready => f.write_str("IgnoreAlready"),
226            Self::IgnoreAdded => f.write_str("IgnoreAdded"),
227            Self::IgnoreRemoved => f.write_str("IgnoreRemoved"),
228            Self::IgnoreAmbiguous => f.write_str("IgnoreAmbiguous"),
229            Self::MuteFull => f.write_str("MuteFull"),
230            Self::MuteSelf => f.write_str("MuteSelf"),
231            Self::MuteNotFound => f.write_str("MuteNotFound"),
232            Self::MuteAlready => f.write_str("MuteAlready"),
233            Self::MuteAdded => f.write_str("MuteAdded"),
234            Self::MuteRemoved => f.write_str("MuteRemoved"),
235            Self::MuteAmbiguous => f.write_str("MuteAmbiguous"),
236            Self::Unknown19 => f.write_str("Unknown19"),
237            Self::Unknown20 => f.write_str("Unknown20"),
238        }
239    }
240}
241
242impl TryFrom<u8> for FriendResult {
243    type Error = crate::errors::EnumError;
244    fn try_from(value: u8) -> Result<Self, Self::Error> {
245        Self::from_int(value)
246    }
247}
248
249impl TryFrom<u16> for FriendResult {
250    type Error = crate::errors::EnumError;
251    fn try_from(value: u16) -> Result<Self, Self::Error> {
252        TryInto::<u8>::try_into(value)
253            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
254            .try_into()
255    }
256}
257
258impl TryFrom<u32> for FriendResult {
259    type Error = crate::errors::EnumError;
260    fn try_from(value: u32) -> Result<Self, Self::Error> {
261        TryInto::<u8>::try_into(value)
262            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
263            .try_into()
264    }
265}
266
267impl TryFrom<u64> for FriendResult {
268    type Error = crate::errors::EnumError;
269    fn try_from(value: u64) -> Result<Self, Self::Error> {
270        TryInto::<u8>::try_into(value)
271            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
272            .try_into()
273    }
274}
275
276impl TryFrom<i8> for FriendResult {
277    type Error = crate::errors::EnumError;
278    fn try_from(value: i8) -> Result<Self, Self::Error> {
279        let v = u8::from_le_bytes(value.to_le_bytes());
280        Self::from_int(v)
281    }
282}
283
284impl TryFrom<i16> for FriendResult {
285    type Error = crate::errors::EnumError;
286    fn try_from(value: i16) -> Result<Self, Self::Error> {
287        TryInto::<u8>::try_into(value)
288            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
289            .try_into()
290    }
291}
292
293impl TryFrom<i32> for FriendResult {
294    type Error = crate::errors::EnumError;
295    fn try_from(value: i32) -> Result<Self, Self::Error> {
296        TryInto::<u8>::try_into(value)
297            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
298            .try_into()
299    }
300}
301
302impl TryFrom<i64> for FriendResult {
303    type Error = crate::errors::EnumError;
304    fn try_from(value: i64) -> Result<Self, Self::Error> {
305        TryInto::<u8>::try_into(value)
306            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
307            .try_into()
308    }
309}
310
311impl TryFrom<usize> for FriendResult {
312    type Error = crate::errors::EnumError;
313    fn try_from(value: usize) -> Result<Self, Self::Error> {
314        TryInto::<u8>::try_into(value)
315            .map_err(|_| crate::errors::EnumError::new(NAME, value as i128))?
316            .try_into()
317    }
318}
319