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