schema_org_types/schemas/enumerations/
nl_nonprofit_type.rs

1/// <https://schema.org/NLNonprofitType>
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
3#[cfg_attr(feature = "derive-clone", derive(Clone))]
4pub enum NlNonprofitType {
5	/// <https://schema.org/NonprofitANBI>
6	NonprofitAnbi,
7	/// <https://schema.org/NonprofitSBBI>
8	NonprofitSbbi,
9}
10#[cfg(feature = "serde")]
11mod serde {
12	use std::{fmt, fmt::Formatter};
13
14	use ::serde::{
15		de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
16	};
17
18	use super::*;
19	impl Serialize for NlNonprofitType {
20		fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
21		where
22			S: Serializer,
23		{
24			match *self {
25				NlNonprofitType::NonprofitAnbi => {
26					serializer.serialize_unit_variant("NlNonprofitType", 0u32, "NonprofitAnbi")
27				}
28				NlNonprofitType::NonprofitSbbi => {
29					serializer.serialize_unit_variant("NlNonprofitType", 1u32, "NonprofitSbbi")
30				}
31			}
32		}
33	}
34	impl<'de> Deserialize<'de> for NlNonprofitType {
35		fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
36		where
37			D: Deserializer<'de>,
38		{
39			enum Field {
40				NonprofitAnbi,
41				NonprofitSbbi,
42			}
43			struct FieldVisitor;
44			impl<'de> de::Visitor<'de> for FieldVisitor {
45				type Value = Field;
46				fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
47					formatter.write_str("variant identifier")
48				}
49				fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
50				where
51					E: de::Error,
52				{
53					match value {
54						"NonprofitAnbi" => Ok(Field::NonprofitAnbi),
55						"NonprofitSbbi" => Ok(Field::NonprofitSbbi),
56						_ => Err(de::Error::unknown_variant(value, VARIANTS)),
57					}
58				}
59				fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
60				where
61					E: de::Error,
62				{
63					match value {
64						b"NonprofitAnbi" => Ok(Field::NonprofitAnbi),
65						b"NonprofitSbbi" => Ok(Field::NonprofitSbbi),
66						_ => {
67							let value = &String::from_utf8_lossy(value);
68							Err(de::Error::unknown_variant(value, VARIANTS))
69						}
70					}
71				}
72			}
73			impl<'de> Deserialize<'de> for Field {
74				fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
75				where
76					D: Deserializer<'de>,
77				{
78					deserializer.deserialize_identifier(FieldVisitor)
79				}
80			}
81			struct EnumerationVisitor;
82			impl<'de> Visitor<'de> for EnumerationVisitor {
83				type Value = NlNonprofitType;
84				fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
85					formatter.write_str("schema.org schema NLNonprofitType")
86				}
87				fn visit_enum<A>(self, data: A) -> Result<Self::Value, A::Error>
88				where
89					A: de::EnumAccess<'de>,
90				{
91					match de::EnumAccess::variant::<Field>(data)? {
92						(Field::NonprofitAnbi, variant) => {
93							de::VariantAccess::unit_variant(variant)?;
94							Ok(NlNonprofitType::NonprofitAnbi)
95						}
96						(Field::NonprofitSbbi, variant) => {
97							de::VariantAccess::unit_variant(variant)?;
98							Ok(NlNonprofitType::NonprofitSbbi)
99						}
100					}
101				}
102			}
103			const VARIANTS: &[&str] = &["NonprofitAnbi", "NonprofitSbbi"];
104			deserializer.deserialize_enum("NlNonprofitType", VARIANTS, EnumerationVisitor)
105		}
106	}
107}