schema_org_types/schemas/properties/
experience_in_place_of_education.rs

1use super::*;
2/// <https://schema.org/experienceInPlaceOfEducation>
3#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub enum ExperienceInPlaceOfEducationProperty {
6	/// <https://schema.org/Boolean>
7	Boolean(Boolean),
8	#[cfg(any(all(feature = "fallible", feature = "serde"), doc))]
9	SerdeFail(crate::fallible::FailValue),
10}
11#[cfg(feature = "serde")]
12mod serde {
13	use std::{fmt, fmt::Formatter};
14
15	use ::serde::{
16		de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
17	};
18
19	use super::*;
20	impl Serialize for ExperienceInPlaceOfEducationProperty {
21		fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
22		where
23			S: Serializer,
24		{
25			match *self {
26				ExperienceInPlaceOfEducationProperty::Boolean(ref inner) => {
27					inner.serialize(serializer)
28				}
29				#[cfg(all(feature = "fallible", feature = "serde"))]
30				ExperienceInPlaceOfEducationProperty::SerdeFail(ref inner) => inner.serialize(serializer),
31			}
32		}
33	}
34	impl<'de> Deserialize<'de> for ExperienceInPlaceOfEducationProperty {
35		fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
36		where
37			D: Deserializer<'de>,
38		{
39			let content =
40				<::serde::__private::de::Content as Deserialize>::deserialize(deserializer)?;
41			let deserializer =
42				::serde::__private::de::ContentRefDeserializer::<D::Error>::new(&content);
43			if let Ok(ok) = Result::map(
44				<Boolean as Deserialize>::deserialize(deserializer),
45				ExperienceInPlaceOfEducationProperty::Boolean,
46			) {
47				return Ok(ok);
48			}
49			#[cfg(all(feature = "fallible", feature = "serde"))]
50			if let Ok(ok) = Result::map(
51				<crate::fallible::FailValue as Deserialize>::deserialize(deserializer),
52				ExperienceInPlaceOfEducationProperty::SerdeFail,
53			) {
54				return Ok(ok);
55			}
56			#[cfg(all(feature = "fallible", feature = "serde"))]
57			const CUSTOM_ERROR: &str = "data did neither match any variant of schema.org property experienceInPlaceOfEducation or was able to be deserialized into a generic value";
58			#[cfg(any(not(feature = "fallible"), not(feature = "serde")))]
59			const CUSTOM_ERROR: &str = "data did not match any variant of schema.org property experienceInPlaceOfEducation";
60			Err(de::Error::custom(CUSTOM_ERROR))
61		}
62	}
63}