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