wow_world_base/inner/vanilla/
guild_emblem_result.rs

1/// Auto generated from the original `wowm` in file [`wow_message_parser/wowm/world/guild/msg_save_guild_emblem_server.wowm:1`](https://github.com/gtker/wow_messages/tree/main/wow_message_parser/wowm/world/guild/msg_save_guild_emblem_server.wowm#L1):
2/// ```text
3/// enum GuildEmblemResult : u32 {
4///     SUCCESS = 0;
5///     INVALID_TABARD_COLORS = 1;
6///     NO_GUILD = 2;
7///     NOT_GUILD_MASTER = 3;
8///     NOT_ENOUGH_MONEY = 4;
9///     NO_MESSAGE = 5;
10/// }
11/// ```
12#[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Copy, Clone)]
13#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
14pub enum GuildEmblemResult {
15    /// Guild Emblem saved.
16    Success,
17    InvalidTabardColors,
18    /// vmangos: You are not part of a guild!
19    NoGuild,
20    /// vmangos: Only guild leaders can create emblems.
21    NotGuildMaster,
22    /// vmangos: You can't afford to do that.
23    NotEnoughMoney,
24    /// mangoszero: This version fails silently.
25    NoMessage,
26}
27
28impl GuildEmblemResult {
29    pub const fn as_int(&self) -> u32 {
30        match self {
31            Self::Success => 0x0,
32            Self::InvalidTabardColors => 0x1,
33            Self::NoGuild => 0x2,
34            Self::NotGuildMaster => 0x3,
35            Self::NotEnoughMoney => 0x4,
36            Self::NoMessage => 0x5,
37        }
38    }
39
40    pub const fn variants() -> [Self; 6] {
41        [
42            Self::Success,
43            Self::InvalidTabardColors,
44            Self::NoGuild,
45            Self::NotGuildMaster,
46            Self::NotEnoughMoney,
47            Self::NoMessage,
48        ]
49    }
50
51    pub const fn from_int(value: u32) -> Result<Self, crate::errors::EnumError> {
52        match value {
53            0 => Ok(Self::Success),
54            1 => Ok(Self::InvalidTabardColors),
55            2 => Ok(Self::NoGuild),
56            3 => Ok(Self::NotGuildMaster),
57            4 => Ok(Self::NotEnoughMoney),
58            5 => Ok(Self::NoMessage),
59            v => Err(crate::errors::EnumError::new(NAME, v as i128),)
60        }
61    }
62}
63
64#[cfg(feature = "print-testcase")]
65impl GuildEmblemResult {
66    pub const fn as_test_case_value(&self) -> &'static str {
67        match self {
68            Self::Success => "SUCCESS",
69            Self::InvalidTabardColors => "INVALID_TABARD_COLORS",
70            Self::NoGuild => "NO_GUILD",
71            Self::NotGuildMaster => "NOT_GUILD_MASTER",
72            Self::NotEnoughMoney => "NOT_ENOUGH_MONEY",
73            Self::NoMessage => "NO_MESSAGE",
74        }
75    }
76
77}
78
79const NAME: &str = "GuildEmblemResult";
80
81impl Default for GuildEmblemResult {
82    fn default() -> Self {
83        Self::Success
84    }
85}
86
87impl std::fmt::Display for GuildEmblemResult {
88    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
89        match self {
90            Self::Success => f.write_str("Success"),
91            Self::InvalidTabardColors => f.write_str("InvalidTabardColors"),
92            Self::NoGuild => f.write_str("NoGuild"),
93            Self::NotGuildMaster => f.write_str("NotGuildMaster"),
94            Self::NotEnoughMoney => f.write_str("NotEnoughMoney"),
95            Self::NoMessage => f.write_str("NoMessage"),
96        }
97    }
98}
99
100impl TryFrom<u32> for GuildEmblemResult {
101    type Error = crate::errors::EnumError;
102    fn try_from(value: u32) -> Result<Self, Self::Error> {
103        Self::from_int(value)
104    }
105}
106
107impl TryFrom<u8> for GuildEmblemResult {
108    type Error = crate::errors::EnumError;
109    fn try_from(value: u8) -> Result<Self, Self::Error> {
110        Self::from_int(value.into())
111    }
112}
113
114impl TryFrom<u16> for GuildEmblemResult {
115    type Error = crate::errors::EnumError;
116    fn try_from(value: u16) -> Result<Self, Self::Error> {
117        Self::from_int(value.into())
118    }
119}
120
121impl TryFrom<u64> for GuildEmblemResult {
122    type Error = crate::errors::EnumError;
123    fn try_from(value: u64) -> Result<Self, Self::Error> {
124        TryInto::<u32>::try_into(value)
125            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
126            .try_into()
127    }
128}
129
130impl TryFrom<i8> for GuildEmblemResult {
131    type Error = crate::errors::EnumError;
132    fn try_from(value: i8) -> Result<Self, Self::Error> {
133        TryInto::<u32>::try_into(value)
134            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
135            .try_into()
136    }
137}
138
139impl TryFrom<i16> for GuildEmblemResult {
140    type Error = crate::errors::EnumError;
141    fn try_from(value: i16) -> Result<Self, Self::Error> {
142        TryInto::<u32>::try_into(value)
143            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
144            .try_into()
145    }
146}
147
148impl TryFrom<i32> for GuildEmblemResult {
149    type Error = crate::errors::EnumError;
150    fn try_from(value: i32) -> Result<Self, Self::Error> {
151        let v = u32::from_le_bytes(value.to_le_bytes());
152        Self::from_int(v)
153    }
154}
155
156impl TryFrom<i64> for GuildEmblemResult {
157    type Error = crate::errors::EnumError;
158    fn try_from(value: i64) -> Result<Self, Self::Error> {
159        TryInto::<u32>::try_into(value)
160            .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
161            .try_into()
162    }
163}
164
165impl TryFrom<usize> for GuildEmblemResult {
166    type Error = crate::errors::EnumError;
167    fn try_from(value: usize) -> Result<Self, Self::Error> {
168        TryInto::<u32>::try_into(value)
169            .map_err(|_| crate::errors::EnumError::new(NAME, value as i128))?
170            .try_into()
171    }
172}
173