schema_org_types/schemas/properties/
verification_fact_checking_policy.rs

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