schema_org_types/schemas/properties/
episodes.rs1use super::*;
2#[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/episode>."]
6pub enum EpisodesProperty {
7 Episode(Episode),
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 EpisodesProperty {
22 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
23 where
24 S: Serializer,
25 {
26 match *self {
27 EpisodesProperty::Episode(ref inner) => inner.serialize(serializer),
28 #[cfg(all(feature = "fallible", feature = "serde"))]
29 EpisodesProperty::SerdeFail(ref inner) => inner.serialize(serializer),
30 }
31 }
32 }
33 impl<'de> Deserialize<'de> for EpisodesProperty {
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 <Episode as Deserialize>::deserialize(deserializer),
44 EpisodesProperty::Episode,
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 EpisodesProperty::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 episodes 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 episodes";
60 Err(de::Error::custom(CUSTOM_ERROR))
61 }
62 }
63}