schema_org_types/schemas/enumerations/
wearable_measurement_type_enumeration.rs

1/// <https://schema.org/WearableMeasurementTypeEnumeration>
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
3#[cfg_attr(feature = "derive-clone", derive(Clone))]
4pub enum WearableMeasurementTypeEnumeration {
5	/// <https://schema.org/WearableMeasurementBack>
6	WearableMeasurementBack,
7	/// <https://schema.org/WearableMeasurementChestOrBust>
8	WearableMeasurementChestOrBust,
9	/// <https://schema.org/WearableMeasurementCollar>
10	WearableMeasurementCollar,
11	/// <https://schema.org/WearableMeasurementCup>
12	WearableMeasurementCup,
13	/// <https://schema.org/WearableMeasurementHeight>
14	WearableMeasurementHeight,
15	/// <https://schema.org/WearableMeasurementHips>
16	WearableMeasurementHips,
17	/// <https://schema.org/WearableMeasurementInseam>
18	WearableMeasurementInseam,
19	/// <https://schema.org/WearableMeasurementLength>
20	WearableMeasurementLength,
21	/// <https://schema.org/WearableMeasurementOutsideLeg>
22	WearableMeasurementOutsideLeg,
23	/// <https://schema.org/WearableMeasurementSleeve>
24	WearableMeasurementSleeve,
25	/// <https://schema.org/WearableMeasurementWaist>
26	WearableMeasurementWaist,
27	/// <https://schema.org/WearableMeasurementWidth>
28	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}