wow_world_base/inner/shared/
complain_result_window_tbc_wrath.rs1#[derive(Debug, PartialEq, Eq, Hash, Ord, PartialOrd, Copy, Clone)]
9#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
10pub enum ComplainResultWindow {
11 DoNotShow,
12 Show,
13}
14
15impl ComplainResultWindow {
16 pub const fn as_int(&self) -> u8 {
17 match self {
18 Self::DoNotShow => 0x0,
19 Self::Show => 0x1,
20 }
21 }
22
23 pub const fn variants() -> [Self; 2] {
24 [
25 Self::DoNotShow,
26 Self::Show,
27 ]
28 }
29
30 pub const fn from_int(value: u8) -> Result<Self, crate::errors::EnumError> {
31 match value {
32 0 => Ok(Self::DoNotShow),
33 1 => Ok(Self::Show),
34 v => Err(crate::errors::EnumError::new(NAME, v as i128),)
35 }
36 }
37}
38
39#[cfg(feature = "print-testcase")]
40impl ComplainResultWindow {
41 pub const fn as_test_case_value(&self) -> &'static str {
42 match self {
43 Self::DoNotShow => "DO_NOT_SHOW",
44 Self::Show => "SHOW",
45 }
46 }
47
48}
49
50const NAME: &str = "ComplainResultWindow";
51
52impl Default for ComplainResultWindow {
53 fn default() -> Self {
54 Self::DoNotShow
55 }
56}
57
58impl std::fmt::Display for ComplainResultWindow {
59 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
60 match self {
61 Self::DoNotShow => f.write_str("DoNotShow"),
62 Self::Show => f.write_str("Show"),
63 }
64 }
65}
66
67impl TryFrom<u8> for ComplainResultWindow {
68 type Error = crate::errors::EnumError;
69 fn try_from(value: u8) -> Result<Self, Self::Error> {
70 Self::from_int(value)
71 }
72}
73
74impl TryFrom<u16> for ComplainResultWindow {
75 type Error = crate::errors::EnumError;
76 fn try_from(value: u16) -> Result<Self, Self::Error> {
77 TryInto::<u8>::try_into(value)
78 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
79 .try_into()
80 }
81}
82
83impl TryFrom<u32> for ComplainResultWindow {
84 type Error = crate::errors::EnumError;
85 fn try_from(value: u32) -> Result<Self, Self::Error> {
86 TryInto::<u8>::try_into(value)
87 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
88 .try_into()
89 }
90}
91
92impl TryFrom<u64> for ComplainResultWindow {
93 type Error = crate::errors::EnumError;
94 fn try_from(value: u64) -> Result<Self, Self::Error> {
95 TryInto::<u8>::try_into(value)
96 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
97 .try_into()
98 }
99}
100
101impl TryFrom<i8> for ComplainResultWindow {
102 type Error = crate::errors::EnumError;
103 fn try_from(value: i8) -> Result<Self, Self::Error> {
104 let v = u8::from_le_bytes(value.to_le_bytes());
105 Self::from_int(v)
106 }
107}
108
109impl TryFrom<i16> for ComplainResultWindow {
110 type Error = crate::errors::EnumError;
111 fn try_from(value: i16) -> Result<Self, Self::Error> {
112 TryInto::<u8>::try_into(value)
113 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
114 .try_into()
115 }
116}
117
118impl TryFrom<i32> for ComplainResultWindow {
119 type Error = crate::errors::EnumError;
120 fn try_from(value: i32) -> Result<Self, Self::Error> {
121 TryInto::<u8>::try_into(value)
122 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
123 .try_into()
124 }
125}
126
127impl TryFrom<i64> for ComplainResultWindow {
128 type Error = crate::errors::EnumError;
129 fn try_from(value: i64) -> Result<Self, Self::Error> {
130 TryInto::<u8>::try_into(value)
131 .map_err(|_| crate::errors::EnumError::new(NAME, value.into()))?
132 .try_into()
133 }
134}
135
136impl TryFrom<usize> for ComplainResultWindow {
137 type Error = crate::errors::EnumError;
138 fn try_from(value: usize) -> Result<Self, Self::Error> {
139 TryInto::<u8>::try_into(value)
140 .map_err(|_| crate::errors::EnumError::new(NAME, value as i128))?
141 .try_into()
142 }
143}
144