wow_world_base/inner/vanilla/
guild_emblem_result.rs1#[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Copy, Clone)]
13#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
14pub enum GuildEmblemResult {
15 Success,
17 InvalidTabardColors,
18 NoGuild,
20 NotGuildMaster,
22 NotEnoughMoney,
24 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