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