schema_org_types/schemas/enumerations/
drive_wheel_configuration_value.rs1#[cfg_attr(feature = "derive-debug", derive(Debug))]
3#[cfg_attr(feature = "derive-clone", derive(Clone))]
4pub enum DriveWheelConfigurationValue {
5 AllWheelDriveConfiguration,
7 FourWheelDriveConfiguration,
9 FrontWheelDriveConfiguration,
11 RearWheelDriveConfiguration,
13}
14#[cfg(feature = "serde")]
15mod serde {
16 use std::{fmt, fmt::Formatter};
17
18 use ::serde::{
19 de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
20 };
21
22 use super::*;
23 impl Serialize for DriveWheelConfigurationValue {
24 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
25 where
26 S: Serializer,
27 {
28 match *self {
29 DriveWheelConfigurationValue::AllWheelDriveConfiguration => serializer
30 .serialize_unit_variant(
31 "DriveWheelConfigurationValue",
32 0u32,
33 "AllWheelDriveConfiguration",
34 ),
35 DriveWheelConfigurationValue::FourWheelDriveConfiguration => serializer
36 .serialize_unit_variant(
37 "DriveWheelConfigurationValue",
38 1u32,
39 "FourWheelDriveConfiguration",
40 ),
41 DriveWheelConfigurationValue::FrontWheelDriveConfiguration => serializer
42 .serialize_unit_variant(
43 "DriveWheelConfigurationValue",
44 2u32,
45 "FrontWheelDriveConfiguration",
46 ),
47 DriveWheelConfigurationValue::RearWheelDriveConfiguration => serializer
48 .serialize_unit_variant(
49 "DriveWheelConfigurationValue",
50 3u32,
51 "RearWheelDriveConfiguration",
52 ),
53 }
54 }
55 }
56 impl<'de> Deserialize<'de> for DriveWheelConfigurationValue {
57 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
58 where
59 D: Deserializer<'de>,
60 {
61 enum Field {
62 AllWheelDriveConfiguration,
63 FourWheelDriveConfiguration,
64 FrontWheelDriveConfiguration,
65 RearWheelDriveConfiguration,
66 }
67 struct FieldVisitor;
68 impl<'de> de::Visitor<'de> for FieldVisitor {
69 type Value = Field;
70 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
71 formatter.write_str("variant identifier")
72 }
73 fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
74 where
75 E: de::Error,
76 {
77 match value {
78 "AllWheelDriveConfiguration" => Ok(Field::AllWheelDriveConfiguration),
79 "FourWheelDriveConfiguration" => Ok(Field::FourWheelDriveConfiguration),
80 "FrontWheelDriveConfiguration" => Ok(Field::FrontWheelDriveConfiguration),
81 "RearWheelDriveConfiguration" => Ok(Field::RearWheelDriveConfiguration),
82 _ => Err(de::Error::unknown_variant(value, VARIANTS)),
83 }
84 }
85 fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
86 where
87 E: de::Error,
88 {
89 match value {
90 b"AllWheelDriveConfiguration" => Ok(Field::AllWheelDriveConfiguration),
91 b"FourWheelDriveConfiguration" => Ok(Field::FourWheelDriveConfiguration),
92 b"FrontWheelDriveConfiguration" => Ok(Field::FrontWheelDriveConfiguration),
93 b"RearWheelDriveConfiguration" => Ok(Field::RearWheelDriveConfiguration),
94 _ => {
95 let value = &String::from_utf8_lossy(value);
96 Err(de::Error::unknown_variant(value, VARIANTS))
97 }
98 }
99 }
100 }
101 impl<'de> Deserialize<'de> for Field {
102 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
103 where
104 D: Deserializer<'de>,
105 {
106 deserializer.deserialize_identifier(FieldVisitor)
107 }
108 }
109 struct EnumerationVisitor;
110 impl<'de> Visitor<'de> for EnumerationVisitor {
111 type Value = DriveWheelConfigurationValue;
112 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
113 formatter.write_str("schema.org schema DriveWheelConfigurationValue")
114 }
115 fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
116 where
117 A: de::EnumAccess<'de>,
118 {
119 match de::EnumAccess::variant::<Field>(data)? {
120 (Field::AllWheelDriveConfiguration, variant) => {
121 de::VariantAccess::unit_variant(variant)?;
122 Ok(DriveWheelConfigurationValue::AllWheelDriveConfiguration)
123 }
124 (Field::FourWheelDriveConfiguration, variant) => {
125 de::VariantAccess::unit_variant(variant)?;
126 Ok(DriveWheelConfigurationValue::FourWheelDriveConfiguration)
127 }
128 (Field::FrontWheelDriveConfiguration, variant) => {
129 de::VariantAccess::unit_variant(variant)?;
130 Ok(DriveWheelConfigurationValue::FrontWheelDriveConfiguration)
131 }
132 (Field::RearWheelDriveConfiguration, variant) => {
133 de::VariantAccess::unit_variant(variant)?;
134 Ok(DriveWheelConfigurationValue::RearWheelDriveConfiguration)
135 }
136 }
137 }
138 }
139 const VARIANTS: &[&str] = &[
140 "AllWheelDriveConfiguration",
141 "FourWheelDriveConfiguration",
142 "FrontWheelDriveConfiguration",
143 "RearWheelDriveConfiguration",
144 ];
145 deserializer.deserialize_enum(
146 "DriveWheelConfigurationValue",
147 VARIANTS,
148 EnumerationVisitor,
149 )
150 }
151 }
152}