schema_org_types/schemas/enumerations/
wearable_measurement_type_enumeration.rs1#[cfg_attr(feature = "derive-debug", derive(Debug))]
3#[cfg_attr(feature = "derive-clone", derive(Clone))]
4pub enum WearableMeasurementTypeEnumeration {
5 WearableMeasurementBack,
7 WearableMeasurementChestOrBust,
9 WearableMeasurementCollar,
11 WearableMeasurementCup,
13 WearableMeasurementHeight,
15 WearableMeasurementHips,
17 WearableMeasurementInseam,
19 WearableMeasurementLength,
21 WearableMeasurementOutsideLeg,
23 WearableMeasurementSleeve,
25 WearableMeasurementWaist,
27 WearableMeasurementWidth,
29}
30#[cfg(feature = "serde")]
31mod serde {
32 use std::{fmt, fmt::Formatter};
33
34 use ::serde::{
35 de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
36 };
37
38 use super::*;
39 impl Serialize for WearableMeasurementTypeEnumeration {
40 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
41 where
42 S: Serializer,
43 {
44 match *self {
45 WearableMeasurementTypeEnumeration::WearableMeasurementBack => serializer
46 .serialize_unit_variant(
47 "WearableMeasurementTypeEnumeration",
48 0u32,
49 "WearableMeasurementBack",
50 ),
51 WearableMeasurementTypeEnumeration::WearableMeasurementChestOrBust => serializer
52 .serialize_unit_variant(
53 "WearableMeasurementTypeEnumeration",
54 1u32,
55 "WearableMeasurementChestOrBust",
56 ),
57 WearableMeasurementTypeEnumeration::WearableMeasurementCollar => serializer
58 .serialize_unit_variant(
59 "WearableMeasurementTypeEnumeration",
60 2u32,
61 "WearableMeasurementCollar",
62 ),
63 WearableMeasurementTypeEnumeration::WearableMeasurementCup => serializer
64 .serialize_unit_variant(
65 "WearableMeasurementTypeEnumeration",
66 3u32,
67 "WearableMeasurementCup",
68 ),
69 WearableMeasurementTypeEnumeration::WearableMeasurementHeight => serializer
70 .serialize_unit_variant(
71 "WearableMeasurementTypeEnumeration",
72 4u32,
73 "WearableMeasurementHeight",
74 ),
75 WearableMeasurementTypeEnumeration::WearableMeasurementHips => serializer
76 .serialize_unit_variant(
77 "WearableMeasurementTypeEnumeration",
78 5u32,
79 "WearableMeasurementHips",
80 ),
81 WearableMeasurementTypeEnumeration::WearableMeasurementInseam => serializer
82 .serialize_unit_variant(
83 "WearableMeasurementTypeEnumeration",
84 6u32,
85 "WearableMeasurementInseam",
86 ),
87 WearableMeasurementTypeEnumeration::WearableMeasurementLength => serializer
88 .serialize_unit_variant(
89 "WearableMeasurementTypeEnumeration",
90 7u32,
91 "WearableMeasurementLength",
92 ),
93 WearableMeasurementTypeEnumeration::WearableMeasurementOutsideLeg => serializer
94 .serialize_unit_variant(
95 "WearableMeasurementTypeEnumeration",
96 8u32,
97 "WearableMeasurementOutsideLeg",
98 ),
99 WearableMeasurementTypeEnumeration::WearableMeasurementSleeve => serializer
100 .serialize_unit_variant(
101 "WearableMeasurementTypeEnumeration",
102 9u32,
103 "WearableMeasurementSleeve",
104 ),
105 WearableMeasurementTypeEnumeration::WearableMeasurementWaist => serializer
106 .serialize_unit_variant(
107 "WearableMeasurementTypeEnumeration",
108 10u32,
109 "WearableMeasurementWaist",
110 ),
111 WearableMeasurementTypeEnumeration::WearableMeasurementWidth => serializer
112 .serialize_unit_variant(
113 "WearableMeasurementTypeEnumeration",
114 11u32,
115 "WearableMeasurementWidth",
116 ),
117 }
118 }
119 }
120 impl<'de> Deserialize<'de> for WearableMeasurementTypeEnumeration {
121 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
122 where
123 D: Deserializer<'de>,
124 {
125 enum Field {
126 WearableMeasurementBack,
127 WearableMeasurementChestOrBust,
128 WearableMeasurementCollar,
129 WearableMeasurementCup,
130 WearableMeasurementHeight,
131 WearableMeasurementHips,
132 WearableMeasurementInseam,
133 WearableMeasurementLength,
134 WearableMeasurementOutsideLeg,
135 WearableMeasurementSleeve,
136 WearableMeasurementWaist,
137 WearableMeasurementWidth,
138 }
139 struct FieldVisitor;
140 impl<'de> de::Visitor<'de> for FieldVisitor {
141 type Value = Field;
142 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
143 formatter.write_str("variant identifier")
144 }
145 fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
146 where
147 E: de::Error,
148 {
149 match value {
150 "WearableMeasurementBack" => Ok(Field::WearableMeasurementBack),
151 "WearableMeasurementChestOrBust" => {
152 Ok(Field::WearableMeasurementChestOrBust)
153 }
154 "WearableMeasurementCollar" => Ok(Field::WearableMeasurementCollar),
155 "WearableMeasurementCup" => Ok(Field::WearableMeasurementCup),
156 "WearableMeasurementHeight" => Ok(Field::WearableMeasurementHeight),
157 "WearableMeasurementHips" => Ok(Field::WearableMeasurementHips),
158 "WearableMeasurementInseam" => Ok(Field::WearableMeasurementInseam),
159 "WearableMeasurementLength" => Ok(Field::WearableMeasurementLength),
160 "WearableMeasurementOutsideLeg" => Ok(Field::WearableMeasurementOutsideLeg),
161 "WearableMeasurementSleeve" => Ok(Field::WearableMeasurementSleeve),
162 "WearableMeasurementWaist" => Ok(Field::WearableMeasurementWaist),
163 "WearableMeasurementWidth" => Ok(Field::WearableMeasurementWidth),
164 _ => Err(de::Error::unknown_variant(value, VARIANTS)),
165 }
166 }
167 fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
168 where
169 E: de::Error,
170 {
171 match value {
172 b"WearableMeasurementBack" => Ok(Field::WearableMeasurementBack),
173 b"WearableMeasurementChestOrBust" => {
174 Ok(Field::WearableMeasurementChestOrBust)
175 }
176 b"WearableMeasurementCollar" => Ok(Field::WearableMeasurementCollar),
177 b"WearableMeasurementCup" => Ok(Field::WearableMeasurementCup),
178 b"WearableMeasurementHeight" => Ok(Field::WearableMeasurementHeight),
179 b"WearableMeasurementHips" => Ok(Field::WearableMeasurementHips),
180 b"WearableMeasurementInseam" => Ok(Field::WearableMeasurementInseam),
181 b"WearableMeasurementLength" => Ok(Field::WearableMeasurementLength),
182 b"WearableMeasurementOutsideLeg" => {
183 Ok(Field::WearableMeasurementOutsideLeg)
184 }
185 b"WearableMeasurementSleeve" => Ok(Field::WearableMeasurementSleeve),
186 b"WearableMeasurementWaist" => Ok(Field::WearableMeasurementWaist),
187 b"WearableMeasurementWidth" => Ok(Field::WearableMeasurementWidth),
188 _ => {
189 let value = &String::from_utf8_lossy(value);
190 Err(de::Error::unknown_variant(value, VARIANTS))
191 }
192 }
193 }
194 }
195 impl<'de> Deserialize<'de> for Field {
196 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
197 where
198 D: Deserializer<'de>,
199 {
200 deserializer.deserialize_identifier(FieldVisitor)
201 }
202 }
203 struct EnumerationVisitor;
204 impl<'de> Visitor<'de> for EnumerationVisitor {
205 type Value = WearableMeasurementTypeEnumeration;
206 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
207 formatter.write_str("schema.org schema WearableMeasurementTypeEnumeration")
208 }
209 fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
210 where
211 A: de::EnumAccess<'de>,
212 {
213 match de::EnumAccess::variant::<Field>(data)? {
214 (Field::WearableMeasurementBack, variant) => {
215 de::VariantAccess::unit_variant(variant)?;
216 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementBack)
217 }
218 (Field::WearableMeasurementChestOrBust, variant) => {
219 de::VariantAccess::unit_variant(variant)?;
220 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementChestOrBust)
221 }
222 (Field::WearableMeasurementCollar, variant) => {
223 de::VariantAccess::unit_variant(variant)?;
224 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementCollar)
225 }
226 (Field::WearableMeasurementCup, variant) => {
227 de::VariantAccess::unit_variant(variant)?;
228 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementCup)
229 }
230 (Field::WearableMeasurementHeight, variant) => {
231 de::VariantAccess::unit_variant(variant)?;
232 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementHeight)
233 }
234 (Field::WearableMeasurementHips, variant) => {
235 de::VariantAccess::unit_variant(variant)?;
236 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementHips)
237 }
238 (Field::WearableMeasurementInseam, variant) => {
239 de::VariantAccess::unit_variant(variant)?;
240 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementInseam)
241 }
242 (Field::WearableMeasurementLength, variant) => {
243 de::VariantAccess::unit_variant(variant)?;
244 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementLength)
245 }
246 (Field::WearableMeasurementOutsideLeg, variant) => {
247 de::VariantAccess::unit_variant(variant)?;
248 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementOutsideLeg)
249 }
250 (Field::WearableMeasurementSleeve, variant) => {
251 de::VariantAccess::unit_variant(variant)?;
252 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementSleeve)
253 }
254 (Field::WearableMeasurementWaist, variant) => {
255 de::VariantAccess::unit_variant(variant)?;
256 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementWaist)
257 }
258 (Field::WearableMeasurementWidth, variant) => {
259 de::VariantAccess::unit_variant(variant)?;
260 Ok(WearableMeasurementTypeEnumeration::WearableMeasurementWidth)
261 }
262 }
263 }
264 }
265 const VARIANTS: &[&str] = &[
266 "WearableMeasurementBack",
267 "WearableMeasurementChestOrBust",
268 "WearableMeasurementCollar",
269 "WearableMeasurementCup",
270 "WearableMeasurementHeight",
271 "WearableMeasurementHips",
272 "WearableMeasurementInseam",
273 "WearableMeasurementLength",
274 "WearableMeasurementOutsideLeg",
275 "WearableMeasurementSleeve",
276 "WearableMeasurementWaist",
277 "WearableMeasurementWidth",
278 ];
279 deserializer.deserialize_enum(
280 "WearableMeasurementTypeEnumeration",
281 VARIANTS,
282 EnumerationVisitor,
283 )
284 }
285 }
286}