schema_org_types/schemas/enumerations/
action_status_type.rs

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