wow_world_base/inner/vanilla/
map.rs

1/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/enums/map.wowm:1`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/enums/map.wowm#L1):
2/// ```text
3/// enum Map : u32 {
4///     EASTERN_KINGDOMS = 0;
5///     KALIMDOR = 1;
6///     TESTING = 13;
7///     SCOTT_TEST = 25;
8///     CASH_TEST = 29;
9///     ALTERAC_VALLEY = 30;
10///     SHADOWFANG_KEEP = 33;
11///     STORMWIND_STOCKADE = 34;
12///     STORMWIND_PRISON = 35;
13///     DEADMINES = 36;
14///     AZSHARA_CRATER = 37;
15///     COLLINS_TEST = 42;
16///     WAILING_CAVERNS = 43;
17///     MONASTERY_UNUSED = 44;
18///     RAZORFEN_KRAUL = 47;
19///     BLACKFATHOM_DEEPS = 48;
20///     ULDAMAN = 70;
21///     GNOMEREGAN = 90;
22///     SUNKEN_TEMPLE = 109;
23///     RAZORFEN_DOWNS = 129;
24///     EMERALD_DREAM = 169;
25///     SCARLET_MONASTERY = 189;
26///     ZUL_FARRAK = 209;
27///     BLACKROCK_SPIRE = 229;
28///     BLACKROCK_DEPTHS = 230;
29///     ONYXIAS_LAIR = 249;
30///     OPENING_OF_THE_DARK_PORTAL = 269;
31///     SCHOLOMANCE = 289;
32///     ZUL_GURUB = 309;
33///     STRATHOLME = 329;
34///     MARAUDON = 349;
35///     DEEPRUN_TRAM = 369;
36///     RAGEFIRE_CHASM = 389;
37///     MOLTEN_CORE = 409;
38///     DIRE_MAUL = 429;
39///     ALLIANCE_PVP_BARRACKS = 449;
40///     HORDE_PVP_BARRACKS = 450;
41///     DEVELOPMENT_LAND = 451;
42///     BLACKWING_LAIR = 469;
43///     WARSONG_GULCH = 489;
44///     RUINS_OF_AHN_QIRAJ = 509;
45///     ARATHI_BASIN = 529;
46///     AHN_QIRAJ_TEMPLE = 531;
47///     NAXXRAMAS = 533;
48/// }
49/// ```
50#[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Copy, Clone)]
51#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
52pub enum Map {
53    EasternKingdoms,
54    Kalimdor,
55    Testing,
56    ScottTest,
57    CashTest,
58    AlteracValley,
59    ShadowfangKeep,
60    StormwindStockade,
61    StormwindPrison,
62    Deadmines,
63    AzsharaCrater,
64    CollinsTest,
65    WailingCaverns,
66    MonasteryUnused,
67    RazorfenKraul,
68    BlackfathomDeeps,
69    Uldaman,
70    Gnomeregan,
71    SunkenTemple,
72    RazorfenDowns,
73    EmeraldDream,
74    ScarletMonastery,
75    ZulFarrak,
76    BlackrockSpire,
77    BlackrockDepths,
78    OnyxiasLair,
79    /// Also called 'Caverns of Time' in Vanilla. Named this way for consistency across versions.
80    OpeningOfTheDarkPortal,
81    Scholomance,
82    ZulGurub,
83    Stratholme,
84    Maraudon,
85    DeeprunTram,
86    RagefireChasm,
87    MoltenCore,
88    DireMaul,
89    AlliancePvpBarracks,
90    HordePvpBarracks,
91    DevelopmentLand,
92    BlackwingLair,
93    WarsongGulch,
94    RuinsOfAhnQiraj,
95    ArathiBasin,
96    AhnQirajTemple,
97    Naxxramas,
98}
99
100impl Map {
101    pub const fn as_int(&self) -> u32 {
102        match self {
103            Self::EasternKingdoms => 0x0,
104            Self::Kalimdor => 0x1,
105            Self::Testing => 0xd,
106            Self::ScottTest => 0x19,
107            Self::CashTest => 0x1d,
108            Self::AlteracValley => 0x1e,
109            Self::ShadowfangKeep => 0x21,
110            Self::StormwindStockade => 0x22,
111            Self::StormwindPrison => 0x23,
112            Self::Deadmines => 0x24,
113            Self::AzsharaCrater => 0x25,
114            Self::CollinsTest => 0x2a,
115            Self::WailingCaverns => 0x2b,
116            Self::MonasteryUnused => 0x2c,
117            Self::RazorfenKraul => 0x2f,
118            Self::BlackfathomDeeps => 0x30,
119            Self::Uldaman => 0x46,
120            Self::Gnomeregan => 0x5a,
121            Self::SunkenTemple => 0x6d,
122            Self::RazorfenDowns => 0x81,
123            Self::EmeraldDream => 0xa9,
124            Self::ScarletMonastery => 0xbd,
125            Self::ZulFarrak => 0xd1,
126            Self::BlackrockSpire => 0xe5,
127            Self::BlackrockDepths => 0xe6,
128            Self::OnyxiasLair => 0xf9,
129            Self::OpeningOfTheDarkPortal => 0x10d,
130            Self::Scholomance => 0x121,
131            Self::ZulGurub => 0x135,
132            Self::Stratholme => 0x149,
133            Self::Maraudon => 0x15d,
134            Self::DeeprunTram => 0x171,
135            Self::RagefireChasm => 0x185,
136            Self::MoltenCore => 0x199,
137            Self::DireMaul => 0x1ad,
138            Self::AlliancePvpBarracks => 0x1c1,
139            Self::HordePvpBarracks => 0x1c2,
140            Self::DevelopmentLand => 0x1c3,
141            Self::BlackwingLair => 0x1d5,
142            Self::WarsongGulch => 0x1e9,
143            Self::RuinsOfAhnQiraj => 0x1fd,
144            Self::ArathiBasin => 0x211,
145            Self::AhnQirajTemple => 0x213,
146            Self::Naxxramas => 0x215,
147        }
148    }
149
150    pub const fn variants() -> [Self; 44] {
151        [
152            Self::EasternKingdoms,
153            Self::Kalimdor,
154            Self::Testing,
155            Self::ScottTest,
156            Self::CashTest,
157            Self::AlteracValley,
158            Self::ShadowfangKeep,
159            Self::StormwindStockade,
160            Self::StormwindPrison,
161            Self::Deadmines,
162            Self::AzsharaCrater,
163            Self::CollinsTest,
164            Self::WailingCaverns,
165            Self::MonasteryUnused,
166            Self::RazorfenKraul,
167            Self::BlackfathomDeeps,
168            Self::Uldaman,
169            Self::Gnomeregan,
170            Self::SunkenTemple,
171            Self::RazorfenDowns,
172            Self::EmeraldDream,
173            Self::ScarletMonastery,
174            Self::ZulFarrak,
175            Self::BlackrockSpire,
176            Self::BlackrockDepths,
177            Self::OnyxiasLair,
178            Self::OpeningOfTheDarkPortal,
179            Self::Scholomance,
180            Self::ZulGurub,
181            Self::Stratholme,
182            Self::Maraudon,
183            Self::DeeprunTram,
184            Self::RagefireChasm,
185            Self::MoltenCore,
186            Self::DireMaul,
187            Self::AlliancePvpBarracks,
188            Self::HordePvpBarracks,
189            Self::DevelopmentLand,
190            Self::BlackwingLair,
191            Self::WarsongGulch,
192            Self::RuinsOfAhnQiraj,
193            Self::ArathiBasin,
194            Self::AhnQirajTemple,
195            Self::Naxxramas,
196        ]
197    }
198
199    pub const fn from_int(value: u32) -> Result<Self, crate::errors::EnumError> {
200        match value {
201            0 => Ok(Self::EasternKingdoms),
202            1 => Ok(Self::Kalimdor),
203            13 => Ok(Self::Testing),
204            25 => Ok(Self::ScottTest),
205            29 => Ok(Self::CashTest),
206            30 => Ok(Self::AlteracValley),
207            33 => Ok(Self::ShadowfangKeep),
208            34 => Ok(Self::StormwindStockade),
209            35 => Ok(Self::StormwindPrison),
210            36 => Ok(Self::Deadmines),
211            37 => Ok(Self::AzsharaCrater),
212            42 => Ok(Self::CollinsTest),
213            43 => Ok(Self::WailingCaverns),
214            44 => Ok(Self::MonasteryUnused),
215            47 => Ok(Self::RazorfenKraul),
216            48 => Ok(Self::BlackfathomDeeps),
217            70 => Ok(Self::Uldaman),
218            90 => Ok(Self::Gnomeregan),
219            109 => Ok(Self::SunkenTemple),
220            129 => Ok(Self::RazorfenDowns),
221            169 => Ok(Self::EmeraldDream),
222            189 => Ok(Self::ScarletMonastery),
223            209 => Ok(Self::ZulFarrak),
224            229 => Ok(Self::BlackrockSpire),
225            230 => Ok(Self::BlackrockDepths),
226            249 => Ok(Self::OnyxiasLair),
227            269 => Ok(Self::OpeningOfTheDarkPortal),
228            289 => Ok(Self::Scholomance),
229            309 => Ok(Self::ZulGurub),
230            329 => Ok(Self::Stratholme),
231            349 => Ok(Self::Maraudon),
232            369 => Ok(Self::DeeprunTram),
233            389 => Ok(Self::RagefireChasm),
234            409 => Ok(Self::MoltenCore),
235            429 => Ok(Self::DireMaul),
236            449 => Ok(Self::AlliancePvpBarracks),
237            450 => Ok(Self::HordePvpBarracks),
238            451 => Ok(Self::DevelopmentLand),
239            469 => Ok(Self::BlackwingLair),
240            489 => Ok(Self::WarsongGulch),
241            509 => Ok(Self::RuinsOfAhnQiraj),
242            529 => Ok(Self::ArathiBasin),
243            531 => Ok(Self::AhnQirajTemple),
244            533 => Ok(Self::Naxxramas),
245            v => Err(crate::errors::EnumError::new(NAME, v as i128),)
246        }
247    }
248}
249
250#[cfg(feature = "print-testcase")]
251impl Map {
252    pub const fn as_test_case_value(&self) -> &'static str {
253        match self {
254            Self::EasternKingdoms => "EASTERN_KINGDOMS",
255            Self::Kalimdor => "KALIMDOR",
256            Self::Testing => "TESTING",
257            Self::ScottTest => "SCOTT_TEST",
258            Self::CashTest => "CASH_TEST",
259            Self::AlteracValley => "ALTERAC_VALLEY",
260            Self::ShadowfangKeep => "SHADOWFANG_KEEP",
261            Self::StormwindStockade => "STORMWIND_STOCKADE",
262            Self::StormwindPrison => "STORMWIND_PRISON",
263            Self::Deadmines => "DEADMINES",
264            Self::AzsharaCrater => "AZSHARA_CRATER",
265            Self::CollinsTest => "COLLINS_TEST",
266            Self::WailingCaverns => "WAILING_CAVERNS",
267            Self::MonasteryUnused => "MONASTERY_UNUSED",
268            Self::RazorfenKraul => "RAZORFEN_KRAUL",
269            Self::BlackfathomDeeps => "BLACKFATHOM_DEEPS",
270            Self::Uldaman => "ULDAMAN",
271            Self::Gnomeregan => "GNOMEREGAN",
272            Self::SunkenTemple => "SUNKEN_TEMPLE",
273            Self::RazorfenDowns => "RAZORFEN_DOWNS",
274            Self::EmeraldDream => "EMERALD_DREAM",
275            Self::ScarletMonastery => "SCARLET_MONASTERY",
276            Self::ZulFarrak => "ZUL_FARRAK",
277            Self::BlackrockSpire => "BLACKROCK_SPIRE",
278            Self::BlackrockDepths => "BLACKROCK_DEPTHS",
279            Self::OnyxiasLair => "ONYXIAS_LAIR",
280            Self::OpeningOfTheDarkPortal => "OPENING_OF_THE_DARK_PORTAL",
281            Self::Scholomance => "SCHOLOMANCE",
282            Self::ZulGurub => "ZUL_GURUB",
283            Self::Stratholme => "STRATHOLME",
284            Self::Maraudon => "MARAUDON",
285            Self::DeeprunTram => "DEEPRUN_TRAM",
286            Self::RagefireChasm => "RAGEFIRE_CHASM",
287            Self::MoltenCore => "MOLTEN_CORE",
288            Self::DireMaul => "DIRE_MAUL",
289            Self::AlliancePvpBarracks => "ALLIANCE_PVP_BARRACKS",
290            Self::HordePvpBarracks => "HORDE_PVP_BARRACKS",
291            Self::DevelopmentLand => "DEVELOPMENT_LAND",
292            Self::BlackwingLair => "BLACKWING_LAIR",
293            Self::WarsongGulch => "WARSONG_GULCH",
294            Self::RuinsOfAhnQiraj => "RUINS_OF_AHN_QIRAJ",
295            Self::ArathiBasin => "ARATHI_BASIN",
296            Self::AhnQirajTemple => "AHN_QIRAJ_TEMPLE",
297            Self::Naxxramas => "NAXXRAMAS",
298        }
299    }
300
301}
302
303const NAME: &str = "Map";
304
305impl Default for Map {
306    fn default() -> Self {
307        Self::EasternKingdoms
308    }
309}
310
311impl std::fmt::Display for Map {
312    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
313        match self {
314            Self::EasternKingdoms => f.write_str("Eastern Kingdoms"),
315            Self::Kalimdor => f.write_str("Kalimdor"),
316            Self::Testing => f.write_str("Testing"),
317            Self::ScottTest => f.write_str("Scott Test"),
318            Self::CashTest => f.write_str("CashTest"),
319            Self::AlteracValley => f.write_str("Alterac Valley"),
320            Self::ShadowfangKeep => f.write_str("Shadowfang Keep"),
321            Self::StormwindStockade => f.write_str("Stormwind Stockade"),
322            Self::StormwindPrison => f.write_str("Stormwind Prison"),
323            Self::Deadmines => f.write_str("Deadmines"),
324            Self::AzsharaCrater => f.write_str("Azshara Crater"),
325            Self::CollinsTest => f.write_str("Collin's Test"),
326            Self::WailingCaverns => f.write_str("Wailing Caverns"),
327            Self::MonasteryUnused => f.write_str("<Unused> Monastery"),
328            Self::RazorfenKraul => f.write_str("Razorfen Kraul"),
329            Self::BlackfathomDeeps => f.write_str("Blackfathom Deeps"),
330            Self::Uldaman => f.write_str("Uldaman"),
331            Self::Gnomeregan => f.write_str("Gnomeregan"),
332            Self::SunkenTemple => f.write_str("Sunken Temple"),
333            Self::RazorfenDowns => f.write_str("Razorfen Downs"),
334            Self::EmeraldDream => f.write_str("Emerald Dream"),
335            Self::ScarletMonastery => f.write_str("Scarlet Monastery"),
336            Self::ZulFarrak => f.write_str("Zul'Farrak"),
337            Self::BlackrockSpire => f.write_str("Blackrock Spire"),
338            Self::BlackrockDepths => f.write_str("Blackrock Depths"),
339            Self::OnyxiasLair => f.write_str("Onyxia's Lair"),
340            Self::OpeningOfTheDarkPortal => f.write_str("Opening of the Dark Portal"),
341            Self::Scholomance => f.write_str("Scholomance"),
342            Self::ZulGurub => f.write_str("Zul'Gurub"),
343            Self::Stratholme => f.write_str("Stratholme"),
344            Self::Maraudon => f.write_str("Maraudon"),
345            Self::DeeprunTram => f.write_str("Deeprun Tram"),
346            Self::RagefireChasm => f.write_str("Ragefire Chasm"),
347            Self::MoltenCore => f.write_str("Molten Core"),
348            Self::DireMaul => f.write_str("Dire Maul"),
349            Self::AlliancePvpBarracks => f.write_str("Alliance PVP Barracks"),
350            Self::HordePvpBarracks => f.write_str("Horde PVP Barracks"),
351            Self::DevelopmentLand => f.write_str("Development Land"),
352            Self::BlackwingLair => f.write_str("Blackwing Lair"),
353            Self::WarsongGulch => f.write_str("Warsong Gulch"),
354            Self::RuinsOfAhnQiraj => f.write_str("Ruins of Ahn'Qiraj"),
355            Self::ArathiBasin => f.write_str("Arathi Basin"),
356            Self::AhnQirajTemple => f.write_str("Ahn'Qiraj Temple"),
357            Self::Naxxramas => f.write_str("Naxxramas"),
358        }
359    }
360}
361
362impl TryFrom<u32> for Map {
363    type Error = crate::errors::EnumError;
364    fn try_from(value: u32) -> Result<Self, Self::Error> {
365        Self::from_int(value)
366    }
367}
368
369impl TryFrom<u8> for Map {
370    type Error = crate::errors::EnumError;
371    fn try_from(value: u8) -> Result<Self, Self::Error> {
372        Self::from_int(value.into())
373    }
374}
375
376impl TryFrom<u16> for Map {
377    type Error = crate::errors::EnumError;
378    fn try_from(value: u16) -> Result<Self, Self::Error> {
379        Self::from_int(value.into())
380    }
381}
382
383impl TryFrom<u64> for Map {
384    type Error = crate::errors::EnumError;
385    fn try_from(value: u64) -> Result<Self, Self::Error> {
386        TryInto::<u32>::try_into(value)
387            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
388            .try_into()
389    }
390}
391
392impl TryFrom<i8> for Map {
393    type Error = crate::errors::EnumError;
394    fn try_from(value: i8) -> Result<Self, Self::Error> {
395        TryInto::<u32>::try_into(value)
396            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
397            .try_into()
398    }
399}
400
401impl TryFrom<i16> for Map {
402    type Error = crate::errors::EnumError;
403    fn try_from(value: i16) -> Result<Self, Self::Error> {
404        TryInto::<u32>::try_into(value)
405            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
406            .try_into()
407    }
408}
409
410impl TryFrom<i32> for Map {
411    type Error = crate::errors::EnumError;
412    fn try_from(value: i32) -> Result<Self, Self::Error> {
413        let v = u32::from_le_bytes(value.to_le_bytes());
414        Self::from_int(v)
415    }
416}
417
418impl TryFrom<i64> for Map {
419    type Error = crate::errors::EnumError;
420    fn try_from(value: i64) -> Result<Self, Self::Error> {
421        TryInto::<u32>::try_into(value)
422            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
423            .try_into()
424    }
425}
426
427impl TryFrom<usize> for Map {
428    type Error = crate::errors::EnumError;
429    fn try_from(value: usize) -> Result<Self, Self::Error> {
430        TryInto::<u32>::try_into(value)
431            .map_err(|_| crate::errors::EnumError::new(NAME, value as i128))?
432            .try_into()
433    }
434}
435