schema_org_types/schemas/properties/
sample_type.rs

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