use super::*;
#[cfg_attr(feature = "derive-debug", derive(Debug))]
#[cfg_attr(feature = "derive-clone", derive(Clone))]
pub struct Crematorium {
pub r#additional_property: Vec<AdditionalPropertyProperty>,
pub r#additional_type: Vec<AdditionalTypeProperty>,
pub r#address: Vec<AddressProperty>,
pub r#aggregate_rating: Vec<AggregateRatingProperty>,
pub r#alternate_name: Vec<AlternateNameProperty>,
pub r#amenity_feature: Vec<AmenityFeatureProperty>,
pub r#branch_code: Vec<BranchCodeProperty>,
pub r#contained_in: Vec<ContainedInProperty>,
pub r#contained_in_place: Vec<ContainedInPlaceProperty>,
pub r#contains_place: Vec<ContainsPlaceProperty>,
pub r#description: Vec<DescriptionProperty>,
pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
pub r#event: Vec<EventProperty>,
pub r#events: Vec<EventsProperty>,
pub r#fax_number: Vec<FaxNumberProperty>,
pub r#geo: Vec<GeoProperty>,
pub r#geo_contains: Vec<GeoContainsProperty>,
pub r#geo_covered_by: Vec<GeoCoveredByProperty>,
pub r#geo_covers: Vec<GeoCoversProperty>,
pub r#geo_crosses: Vec<GeoCrossesProperty>,
pub r#geo_disjoint: Vec<GeoDisjointProperty>,
pub r#geo_equals: Vec<GeoEqualsProperty>,
pub r#geo_intersects: Vec<GeoIntersectsProperty>,
pub r#geo_overlaps: Vec<GeoOverlapsProperty>,
pub r#geo_touches: Vec<GeoTouchesProperty>,
pub r#geo_within: Vec<GeoWithinProperty>,
pub r#global_location_number: Vec<GlobalLocationNumberProperty>,
pub r#has_drive_through_service: Vec<HasDriveThroughServiceProperty>,
pub r#has_map: Vec<HasMapProperty>,
pub r#identifier: Vec<IdentifierProperty>,
pub r#image: Vec<ImageProperty>,
pub r#is_accessible_for_free: Vec<IsAccessibleForFreeProperty>,
pub r#isic_v_4: Vec<IsicV4Property>,
pub r#keywords: Vec<KeywordsProperty>,
pub r#latitude: Vec<LatitudeProperty>,
pub r#logo: Vec<LogoProperty>,
pub r#longitude: Vec<LongitudeProperty>,
pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
pub r#map: Vec<MapProperty>,
pub r#maps: Vec<MapsProperty>,
pub r#maximum_attendee_capacity: Vec<MaximumAttendeeCapacityProperty>,
pub r#name: Vec<NameProperty>,
pub r#opening_hours: Vec<OpeningHoursProperty>,
pub r#opening_hours_specification: Vec<OpeningHoursSpecificationProperty>,
pub r#photo: Vec<PhotoProperty>,
pub r#photos: Vec<PhotosProperty>,
pub r#potential_action: Vec<PotentialActionProperty>,
pub r#public_access: Vec<PublicAccessProperty>,
pub r#review: Vec<ReviewProperty>,
pub r#reviews: Vec<ReviewsProperty>,
pub r#same_as: Vec<SameAsProperty>,
pub r#slogan: Vec<SloganProperty>,
pub r#smoking_allowed: Vec<SmokingAllowedProperty>,
pub r#special_opening_hours_specification: Vec<SpecialOpeningHoursSpecificationProperty>,
pub r#subject_of: Vec<SubjectOfProperty>,
pub r#telephone: Vec<TelephoneProperty>,
pub r#tour_booking_page: Vec<TourBookingPageProperty>,
pub r#url: Vec<UrlProperty>,
}
#[cfg(feature = "serde")]
mod serde {
use std::{fmt, fmt::Formatter};
use ::serde::{
de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
};
use super::*;
impl Serialize for Crematorium {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let len: usize = [
!Vec::is_empty(&self.r#additional_property) as usize,
!Vec::is_empty(&self.r#additional_type) as usize,
!Vec::is_empty(&self.r#address) as usize,
!Vec::is_empty(&self.r#aggregate_rating) as usize,
!Vec::is_empty(&self.r#alternate_name) as usize,
!Vec::is_empty(&self.r#amenity_feature) as usize,
!Vec::is_empty(&self.r#branch_code) as usize,
!Vec::is_empty(&self.r#contained_in) as usize,
!Vec::is_empty(&self.r#contained_in_place) as usize,
!Vec::is_empty(&self.r#contains_place) as usize,
!Vec::is_empty(&self.r#description) as usize,
!Vec::is_empty(&self.r#disambiguating_description) as usize,
!Vec::is_empty(&self.r#event) as usize,
!Vec::is_empty(&self.r#events) as usize,
!Vec::is_empty(&self.r#fax_number) as usize,
!Vec::is_empty(&self.r#geo) as usize,
!Vec::is_empty(&self.r#geo_contains) as usize,
!Vec::is_empty(&self.r#geo_covered_by) as usize,
!Vec::is_empty(&self.r#geo_covers) as usize,
!Vec::is_empty(&self.r#geo_crosses) as usize,
!Vec::is_empty(&self.r#geo_disjoint) as usize,
!Vec::is_empty(&self.r#geo_equals) as usize,
!Vec::is_empty(&self.r#geo_intersects) as usize,
!Vec::is_empty(&self.r#geo_overlaps) as usize,
!Vec::is_empty(&self.r#geo_touches) as usize,
!Vec::is_empty(&self.r#geo_within) as usize,
!Vec::is_empty(&self.r#global_location_number) as usize,
!Vec::is_empty(&self.r#has_drive_through_service) as usize,
!Vec::is_empty(&self.r#has_map) as usize,
!Vec::is_empty(&self.r#identifier) as usize,
!Vec::is_empty(&self.r#image) as usize,
!Vec::is_empty(&self.r#is_accessible_for_free) as usize,
!Vec::is_empty(&self.r#isic_v_4) as usize,
!Vec::is_empty(&self.r#keywords) as usize,
!Vec::is_empty(&self.r#latitude) as usize,
!Vec::is_empty(&self.r#logo) as usize,
!Vec::is_empty(&self.r#longitude) as usize,
!Vec::is_empty(&self.r#main_entity_of_page) as usize,
!Vec::is_empty(&self.r#map) as usize,
!Vec::is_empty(&self.r#maps) as usize,
!Vec::is_empty(&self.r#maximum_attendee_capacity) as usize,
!Vec::is_empty(&self.r#name) as usize,
!Vec::is_empty(&self.r#opening_hours) as usize,
!Vec::is_empty(&self.r#opening_hours_specification) as usize,
!Vec::is_empty(&self.r#photo) as usize,
!Vec::is_empty(&self.r#photos) as usize,
!Vec::is_empty(&self.r#potential_action) as usize,
!Vec::is_empty(&self.r#public_access) as usize,
!Vec::is_empty(&self.r#review) as usize,
!Vec::is_empty(&self.r#reviews) as usize,
!Vec::is_empty(&self.r#same_as) as usize,
!Vec::is_empty(&self.r#slogan) as usize,
!Vec::is_empty(&self.r#smoking_allowed) as usize,
!Vec::is_empty(&self.r#special_opening_hours_specification) as usize,
!Vec::is_empty(&self.r#subject_of) as usize,
!Vec::is_empty(&self.r#telephone) as usize,
!Vec::is_empty(&self.r#tour_booking_page) as usize,
!Vec::is_empty(&self.r#url) as usize,
]
.iter()
.sum();
let mut serialize_struct =
Serializer::serialize_struct(serializer, "Crematorium", len)?;
if !Vec::is_empty(&self.r#additional_property) {
serialize_struct.serialize_field("additionalProperty", {
struct SerializeWith<'a>(&'a Vec<AdditionalPropertyProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#additional_property)
})?;
} else {
serialize_struct.skip_field("additionalProperty")?;
}
if !Vec::is_empty(&self.r#additional_type) {
serialize_struct.serialize_field("additionalType", {
struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#additional_type)
})?;
} else {
serialize_struct.skip_field("additionalType")?;
}
if !Vec::is_empty(&self.r#address) {
serialize_struct.serialize_field("address", {
struct SerializeWith<'a>(&'a Vec<AddressProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#address)
})?;
} else {
serialize_struct.skip_field("address")?;
}
if !Vec::is_empty(&self.r#aggregate_rating) {
serialize_struct.serialize_field("aggregateRating", {
struct SerializeWith<'a>(&'a Vec<AggregateRatingProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#aggregate_rating)
})?;
} else {
serialize_struct.skip_field("aggregateRating")?;
}
if !Vec::is_empty(&self.r#alternate_name) {
serialize_struct.serialize_field("alternateName", {
struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#alternate_name)
})?;
} else {
serialize_struct.skip_field("alternateName")?;
}
if !Vec::is_empty(&self.r#amenity_feature) {
serialize_struct.serialize_field("amenityFeature", {
struct SerializeWith<'a>(&'a Vec<AmenityFeatureProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#amenity_feature)
})?;
} else {
serialize_struct.skip_field("amenityFeature")?;
}
if !Vec::is_empty(&self.r#branch_code) {
serialize_struct.serialize_field("branchCode", {
struct SerializeWith<'a>(&'a Vec<BranchCodeProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#branch_code)
})?;
} else {
serialize_struct.skip_field("branchCode")?;
}
if !Vec::is_empty(&self.r#contained_in) {
serialize_struct.serialize_field("containedIn", {
struct SerializeWith<'a>(&'a Vec<ContainedInProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#contained_in)
})?;
} else {
serialize_struct.skip_field("containedIn")?;
}
if !Vec::is_empty(&self.r#contained_in_place) {
serialize_struct.serialize_field("containedInPlace", {
struct SerializeWith<'a>(&'a Vec<ContainedInPlaceProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#contained_in_place)
})?;
} else {
serialize_struct.skip_field("containedInPlace")?;
}
if !Vec::is_empty(&self.r#contains_place) {
serialize_struct.serialize_field("containsPlace", {
struct SerializeWith<'a>(&'a Vec<ContainsPlaceProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#contains_place)
})?;
} else {
serialize_struct.skip_field("containsPlace")?;
}
if !Vec::is_empty(&self.r#description) {
serialize_struct.serialize_field("description", {
struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#description)
})?;
} else {
serialize_struct.skip_field("description")?;
}
if !Vec::is_empty(&self.r#disambiguating_description) {
serialize_struct.serialize_field("disambiguatingDescription", {
struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#disambiguating_description)
})?;
} else {
serialize_struct.skip_field("disambiguatingDescription")?;
}
if !Vec::is_empty(&self.r#event) {
serialize_struct.serialize_field("event", {
struct SerializeWith<'a>(&'a Vec<EventProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#event)
})?;
} else {
serialize_struct.skip_field("event")?;
}
if !Vec::is_empty(&self.r#events) {
serialize_struct.serialize_field("events", {
struct SerializeWith<'a>(&'a Vec<EventsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#events)
})?;
} else {
serialize_struct.skip_field("events")?;
}
if !Vec::is_empty(&self.r#fax_number) {
serialize_struct.serialize_field("faxNumber", {
struct SerializeWith<'a>(&'a Vec<FaxNumberProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#fax_number)
})?;
} else {
serialize_struct.skip_field("faxNumber")?;
}
if !Vec::is_empty(&self.r#geo) {
serialize_struct.serialize_field("geo", {
struct SerializeWith<'a>(&'a Vec<GeoProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo)
})?;
} else {
serialize_struct.skip_field("geo")?;
}
if !Vec::is_empty(&self.r#geo_contains) {
serialize_struct.serialize_field("geoContains", {
struct SerializeWith<'a>(&'a Vec<GeoContainsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_contains)
})?;
} else {
serialize_struct.skip_field("geoContains")?;
}
if !Vec::is_empty(&self.r#geo_covered_by) {
serialize_struct.serialize_field("geoCoveredBy", {
struct SerializeWith<'a>(&'a Vec<GeoCoveredByProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_covered_by)
})?;
} else {
serialize_struct.skip_field("geoCoveredBy")?;
}
if !Vec::is_empty(&self.r#geo_covers) {
serialize_struct.serialize_field("geoCovers", {
struct SerializeWith<'a>(&'a Vec<GeoCoversProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_covers)
})?;
} else {
serialize_struct.skip_field("geoCovers")?;
}
if !Vec::is_empty(&self.r#geo_crosses) {
serialize_struct.serialize_field("geoCrosses", {
struct SerializeWith<'a>(&'a Vec<GeoCrossesProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_crosses)
})?;
} else {
serialize_struct.skip_field("geoCrosses")?;
}
if !Vec::is_empty(&self.r#geo_disjoint) {
serialize_struct.serialize_field("geoDisjoint", {
struct SerializeWith<'a>(&'a Vec<GeoDisjointProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_disjoint)
})?;
} else {
serialize_struct.skip_field("geoDisjoint")?;
}
if !Vec::is_empty(&self.r#geo_equals) {
serialize_struct.serialize_field("geoEquals", {
struct SerializeWith<'a>(&'a Vec<GeoEqualsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_equals)
})?;
} else {
serialize_struct.skip_field("geoEquals")?;
}
if !Vec::is_empty(&self.r#geo_intersects) {
serialize_struct.serialize_field("geoIntersects", {
struct SerializeWith<'a>(&'a Vec<GeoIntersectsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_intersects)
})?;
} else {
serialize_struct.skip_field("geoIntersects")?;
}
if !Vec::is_empty(&self.r#geo_overlaps) {
serialize_struct.serialize_field("geoOverlaps", {
struct SerializeWith<'a>(&'a Vec<GeoOverlapsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_overlaps)
})?;
} else {
serialize_struct.skip_field("geoOverlaps")?;
}
if !Vec::is_empty(&self.r#geo_touches) {
serialize_struct.serialize_field("geoTouches", {
struct SerializeWith<'a>(&'a Vec<GeoTouchesProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_touches)
})?;
} else {
serialize_struct.skip_field("geoTouches")?;
}
if !Vec::is_empty(&self.r#geo_within) {
serialize_struct.serialize_field("geoWithin", {
struct SerializeWith<'a>(&'a Vec<GeoWithinProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#geo_within)
})?;
} else {
serialize_struct.skip_field("geoWithin")?;
}
if !Vec::is_empty(&self.r#global_location_number) {
serialize_struct.serialize_field("globalLocationNumber", {
struct SerializeWith<'a>(&'a Vec<GlobalLocationNumberProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#global_location_number)
})?;
} else {
serialize_struct.skip_field("globalLocationNumber")?;
}
if !Vec::is_empty(&self.r#has_drive_through_service) {
serialize_struct.serialize_field("hasDriveThroughService", {
struct SerializeWith<'a>(&'a Vec<HasDriveThroughServiceProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#has_drive_through_service)
})?;
} else {
serialize_struct.skip_field("hasDriveThroughService")?;
}
if !Vec::is_empty(&self.r#has_map) {
serialize_struct.serialize_field("hasMap", {
struct SerializeWith<'a>(&'a Vec<HasMapProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#has_map)
})?;
} else {
serialize_struct.skip_field("hasMap")?;
}
if !Vec::is_empty(&self.r#identifier) {
serialize_struct.serialize_field("identifier", {
struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#identifier)
})?;
} else {
serialize_struct.skip_field("identifier")?;
}
if !Vec::is_empty(&self.r#image) {
serialize_struct.serialize_field("image", {
struct SerializeWith<'a>(&'a Vec<ImageProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#image)
})?;
} else {
serialize_struct.skip_field("image")?;
}
if !Vec::is_empty(&self.r#is_accessible_for_free) {
serialize_struct.serialize_field("isAccessibleForFree", {
struct SerializeWith<'a>(&'a Vec<IsAccessibleForFreeProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#is_accessible_for_free)
})?;
} else {
serialize_struct.skip_field("isAccessibleForFree")?;
}
if !Vec::is_empty(&self.r#isic_v_4) {
serialize_struct.serialize_field("isicV4", {
struct SerializeWith<'a>(&'a Vec<IsicV4Property>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#isic_v_4)
})?;
} else {
serialize_struct.skip_field("isicV4")?;
}
if !Vec::is_empty(&self.r#keywords) {
serialize_struct.serialize_field("keywords", {
struct SerializeWith<'a>(&'a Vec<KeywordsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#keywords)
})?;
} else {
serialize_struct.skip_field("keywords")?;
}
if !Vec::is_empty(&self.r#latitude) {
serialize_struct.serialize_field("latitude", {
struct SerializeWith<'a>(&'a Vec<LatitudeProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#latitude)
})?;
} else {
serialize_struct.skip_field("latitude")?;
}
if !Vec::is_empty(&self.r#logo) {
serialize_struct.serialize_field("logo", {
struct SerializeWith<'a>(&'a Vec<LogoProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#logo)
})?;
} else {
serialize_struct.skip_field("logo")?;
}
if !Vec::is_empty(&self.r#longitude) {
serialize_struct.serialize_field("longitude", {
struct SerializeWith<'a>(&'a Vec<LongitudeProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#longitude)
})?;
} else {
serialize_struct.skip_field("longitude")?;
}
if !Vec::is_empty(&self.r#main_entity_of_page) {
serialize_struct.serialize_field("mainEntityOfPage", {
struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#main_entity_of_page)
})?;
} else {
serialize_struct.skip_field("mainEntityOfPage")?;
}
if !Vec::is_empty(&self.r#map) {
serialize_struct.serialize_field("map", {
struct SerializeWith<'a>(&'a Vec<MapProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#map)
})?;
} else {
serialize_struct.skip_field("map")?;
}
if !Vec::is_empty(&self.r#maps) {
serialize_struct.serialize_field("maps", {
struct SerializeWith<'a>(&'a Vec<MapsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#maps)
})?;
} else {
serialize_struct.skip_field("maps")?;
}
if !Vec::is_empty(&self.r#maximum_attendee_capacity) {
serialize_struct.serialize_field("maximumAttendeeCapacity", {
struct SerializeWith<'a>(&'a Vec<MaximumAttendeeCapacityProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#maximum_attendee_capacity)
})?;
} else {
serialize_struct.skip_field("maximumAttendeeCapacity")?;
}
if !Vec::is_empty(&self.r#name) {
serialize_struct.serialize_field("name", {
struct SerializeWith<'a>(&'a Vec<NameProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#name)
})?;
} else {
serialize_struct.skip_field("name")?;
}
if !Vec::is_empty(&self.r#opening_hours) {
serialize_struct.serialize_field("openingHours", {
struct SerializeWith<'a>(&'a Vec<OpeningHoursProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#opening_hours)
})?;
} else {
serialize_struct.skip_field("openingHours")?;
}
if !Vec::is_empty(&self.r#opening_hours_specification) {
serialize_struct.serialize_field("openingHoursSpecification", {
struct SerializeWith<'a>(&'a Vec<OpeningHoursSpecificationProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#opening_hours_specification)
})?;
} else {
serialize_struct.skip_field("openingHoursSpecification")?;
}
if !Vec::is_empty(&self.r#photo) {
serialize_struct.serialize_field("photo", {
struct SerializeWith<'a>(&'a Vec<PhotoProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#photo)
})?;
} else {
serialize_struct.skip_field("photo")?;
}
if !Vec::is_empty(&self.r#photos) {
serialize_struct.serialize_field("photos", {
struct SerializeWith<'a>(&'a Vec<PhotosProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#photos)
})?;
} else {
serialize_struct.skip_field("photos")?;
}
if !Vec::is_empty(&self.r#potential_action) {
serialize_struct.serialize_field("potentialAction", {
struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#potential_action)
})?;
} else {
serialize_struct.skip_field("potentialAction")?;
}
if !Vec::is_empty(&self.r#public_access) {
serialize_struct.serialize_field("publicAccess", {
struct SerializeWith<'a>(&'a Vec<PublicAccessProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#public_access)
})?;
} else {
serialize_struct.skip_field("publicAccess")?;
}
if !Vec::is_empty(&self.r#review) {
serialize_struct.serialize_field("review", {
struct SerializeWith<'a>(&'a Vec<ReviewProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#review)
})?;
} else {
serialize_struct.skip_field("review")?;
}
if !Vec::is_empty(&self.r#reviews) {
serialize_struct.serialize_field("reviews", {
struct SerializeWith<'a>(&'a Vec<ReviewsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#reviews)
})?;
} else {
serialize_struct.skip_field("reviews")?;
}
if !Vec::is_empty(&self.r#same_as) {
serialize_struct.serialize_field("sameAs", {
struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#same_as)
})?;
} else {
serialize_struct.skip_field("sameAs")?;
}
if !Vec::is_empty(&self.r#slogan) {
serialize_struct.serialize_field("slogan", {
struct SerializeWith<'a>(&'a Vec<SloganProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#slogan)
})?;
} else {
serialize_struct.skip_field("slogan")?;
}
if !Vec::is_empty(&self.r#smoking_allowed) {
serialize_struct.serialize_field("smokingAllowed", {
struct SerializeWith<'a>(&'a Vec<SmokingAllowedProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#smoking_allowed)
})?;
} else {
serialize_struct.skip_field("smokingAllowed")?;
}
if !Vec::is_empty(&self.r#special_opening_hours_specification) {
serialize_struct.serialize_field("specialOpeningHoursSpecification", {
struct SerializeWith<'a>(&'a Vec<SpecialOpeningHoursSpecificationProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#special_opening_hours_specification)
})?;
} else {
serialize_struct.skip_field("specialOpeningHoursSpecification")?;
}
if !Vec::is_empty(&self.r#subject_of) {
serialize_struct.serialize_field("subjectOf", {
struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#subject_of)
})?;
} else {
serialize_struct.skip_field("subjectOf")?;
}
if !Vec::is_empty(&self.r#telephone) {
serialize_struct.serialize_field("telephone", {
struct SerializeWith<'a>(&'a Vec<TelephoneProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#telephone)
})?;
} else {
serialize_struct.skip_field("telephone")?;
}
if !Vec::is_empty(&self.r#tour_booking_page) {
serialize_struct.serialize_field("tourBookingPage", {
struct SerializeWith<'a>(&'a Vec<TourBookingPageProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#tour_booking_page)
})?;
} else {
serialize_struct.skip_field("tourBookingPage")?;
}
if !Vec::is_empty(&self.r#url) {
serialize_struct.serialize_field("url", {
struct SerializeWith<'a>(&'a Vec<UrlProperty>);
impl<'a> Serialize for SerializeWith<'a> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
self.0, serializer,
)
}
}
&SerializeWith(&self.r#url)
})?;
} else {
serialize_struct.skip_field("url")?;
}
serialize_struct.end()
}
}
impl<'de> Deserialize<'de> for Crematorium {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
enum Field {
AdditionalProperty,
AdditionalType,
Address,
AggregateRating,
AlternateName,
AmenityFeature,
BranchCode,
ContainedIn,
ContainedInPlace,
ContainsPlace,
Description,
DisambiguatingDescription,
Event,
Events,
FaxNumber,
Geo,
GeoContains,
GeoCoveredBy,
GeoCovers,
GeoCrosses,
GeoDisjoint,
GeoEquals,
GeoIntersects,
GeoOverlaps,
GeoTouches,
GeoWithin,
GlobalLocationNumber,
HasDriveThroughService,
HasMap,
Identifier,
Image,
IsAccessibleForFree,
IsicV4,
Keywords,
Latitude,
Logo,
Longitude,
MainEntityOfPage,
Map,
Maps,
MaximumAttendeeCapacity,
Name,
OpeningHours,
OpeningHoursSpecification,
Photo,
Photos,
PotentialAction,
PublicAccess,
Review,
Reviews,
SameAs,
Slogan,
SmokingAllowed,
SpecialOpeningHoursSpecification,
SubjectOf,
Telephone,
TourBookingPage,
Url,
Ignore,
}
struct FieldVisitor;
impl<'de> Visitor<'de> for FieldVisitor {
type Value = Field;
fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
formatter.write_str("field identifier")
}
fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
where
E: de::Error,
{
match value {
"additionalProperty" => Ok(Field::AdditionalProperty),
"additionalType" => Ok(Field::AdditionalType),
"address" => Ok(Field::Address),
"aggregateRating" => Ok(Field::AggregateRating),
"alternateName" => Ok(Field::AlternateName),
"amenityFeature" => Ok(Field::AmenityFeature),
"branchCode" => Ok(Field::BranchCode),
"containedIn" => Ok(Field::ContainedIn),
"containedInPlace" => Ok(Field::ContainedInPlace),
"containsPlace" => Ok(Field::ContainsPlace),
"description" => Ok(Field::Description),
"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
"event" => Ok(Field::Event),
"events" => Ok(Field::Events),
"faxNumber" => Ok(Field::FaxNumber),
"geo" => Ok(Field::Geo),
"geoContains" => Ok(Field::GeoContains),
"geoCoveredBy" => Ok(Field::GeoCoveredBy),
"geoCovers" => Ok(Field::GeoCovers),
"geoCrosses" => Ok(Field::GeoCrosses),
"geoDisjoint" => Ok(Field::GeoDisjoint),
"geoEquals" => Ok(Field::GeoEquals),
"geoIntersects" => Ok(Field::GeoIntersects),
"geoOverlaps" => Ok(Field::GeoOverlaps),
"geoTouches" => Ok(Field::GeoTouches),
"geoWithin" => Ok(Field::GeoWithin),
"globalLocationNumber" => Ok(Field::GlobalLocationNumber),
"hasDriveThroughService" => Ok(Field::HasDriveThroughService),
"hasMap" => Ok(Field::HasMap),
"identifier" => Ok(Field::Identifier),
"image" => Ok(Field::Image),
"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
"isicV4" => Ok(Field::IsicV4),
"keywords" => Ok(Field::Keywords),
"latitude" => Ok(Field::Latitude),
"logo" => Ok(Field::Logo),
"longitude" => Ok(Field::Longitude),
"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
"map" => Ok(Field::Map),
"maps" => Ok(Field::Maps),
"maximumAttendeeCapacity" => Ok(Field::MaximumAttendeeCapacity),
"name" => Ok(Field::Name),
"openingHours" => Ok(Field::OpeningHours),
"openingHoursSpecification" => Ok(Field::OpeningHoursSpecification),
"photo" => Ok(Field::Photo),
"photos" => Ok(Field::Photos),
"potentialAction" => Ok(Field::PotentialAction),
"publicAccess" => Ok(Field::PublicAccess),
"review" => Ok(Field::Review),
"reviews" => Ok(Field::Reviews),
"sameAs" => Ok(Field::SameAs),
"slogan" => Ok(Field::Slogan),
"smokingAllowed" => Ok(Field::SmokingAllowed),
"specialOpeningHoursSpecification" => {
Ok(Field::SpecialOpeningHoursSpecification)
}
"subjectOf" => Ok(Field::SubjectOf),
"telephone" => Ok(Field::Telephone),
"tourBookingPage" => Ok(Field::TourBookingPage),
"url" => Ok(Field::Url),
_ => Ok(Field::Ignore),
}
}
fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
where
E: de::Error,
{
match value {
b"additionalProperty" => Ok(Field::AdditionalProperty),
b"additionalType" => Ok(Field::AdditionalType),
b"address" => Ok(Field::Address),
b"aggregateRating" => Ok(Field::AggregateRating),
b"alternateName" => Ok(Field::AlternateName),
b"amenityFeature" => Ok(Field::AmenityFeature),
b"branchCode" => Ok(Field::BranchCode),
b"containedIn" => Ok(Field::ContainedIn),
b"containedInPlace" => Ok(Field::ContainedInPlace),
b"containsPlace" => Ok(Field::ContainsPlace),
b"description" => Ok(Field::Description),
b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
b"event" => Ok(Field::Event),
b"events" => Ok(Field::Events),
b"faxNumber" => Ok(Field::FaxNumber),
b"geo" => Ok(Field::Geo),
b"geoContains" => Ok(Field::GeoContains),
b"geoCoveredBy" => Ok(Field::GeoCoveredBy),
b"geoCovers" => Ok(Field::GeoCovers),
b"geoCrosses" => Ok(Field::GeoCrosses),
b"geoDisjoint" => Ok(Field::GeoDisjoint),
b"geoEquals" => Ok(Field::GeoEquals),
b"geoIntersects" => Ok(Field::GeoIntersects),
b"geoOverlaps" => Ok(Field::GeoOverlaps),
b"geoTouches" => Ok(Field::GeoTouches),
b"geoWithin" => Ok(Field::GeoWithin),
b"globalLocationNumber" => Ok(Field::GlobalLocationNumber),
b"hasDriveThroughService" => Ok(Field::HasDriveThroughService),
b"hasMap" => Ok(Field::HasMap),
b"identifier" => Ok(Field::Identifier),
b"image" => Ok(Field::Image),
b"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
b"isicV4" => Ok(Field::IsicV4),
b"keywords" => Ok(Field::Keywords),
b"latitude" => Ok(Field::Latitude),
b"logo" => Ok(Field::Logo),
b"longitude" => Ok(Field::Longitude),
b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
b"map" => Ok(Field::Map),
b"maps" => Ok(Field::Maps),
b"maximumAttendeeCapacity" => Ok(Field::MaximumAttendeeCapacity),
b"name" => Ok(Field::Name),
b"openingHours" => Ok(Field::OpeningHours),
b"openingHoursSpecification" => Ok(Field::OpeningHoursSpecification),
b"photo" => Ok(Field::Photo),
b"photos" => Ok(Field::Photos),
b"potentialAction" => Ok(Field::PotentialAction),
b"publicAccess" => Ok(Field::PublicAccess),
b"review" => Ok(Field::Review),
b"reviews" => Ok(Field::Reviews),
b"sameAs" => Ok(Field::SameAs),
b"slogan" => Ok(Field::Slogan),
b"smokingAllowed" => Ok(Field::SmokingAllowed),
b"specialOpeningHoursSpecification" => {
Ok(Field::SpecialOpeningHoursSpecification)
}
b"subjectOf" => Ok(Field::SubjectOf),
b"telephone" => Ok(Field::Telephone),
b"tourBookingPage" => Ok(Field::TourBookingPage),
b"url" => Ok(Field::Url),
_ => Ok(Field::Ignore),
}
}
}
impl<'de> Deserialize<'de> for Field {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
deserializer.deserialize_identifier(FieldVisitor)
}
}
struct ClassVisitor;
impl<'de> Visitor<'de> for ClassVisitor {
type Value = Crematorium;
fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
formatter.write_str("schema.org schema Crematorium")
}
fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
where
A: de::MapAccess<'de>,
{
let mut r#additional_property_property = None;
let mut r#additional_type_property = None;
let mut r#address_property = None;
let mut r#aggregate_rating_property = None;
let mut r#alternate_name_property = None;
let mut r#amenity_feature_property = None;
let mut r#branch_code_property = None;
let mut r#contained_in_property = None;
let mut r#contained_in_place_property = None;
let mut r#contains_place_property = None;
let mut r#description_property = None;
let mut r#disambiguating_description_property = None;
let mut r#event_property = None;
let mut r#events_property = None;
let mut r#fax_number_property = None;
let mut r#geo_property = None;
let mut r#geo_contains_property = None;
let mut r#geo_covered_by_property = None;
let mut r#geo_covers_property = None;
let mut r#geo_crosses_property = None;
let mut r#geo_disjoint_property = None;
let mut r#geo_equals_property = None;
let mut r#geo_intersects_property = None;
let mut r#geo_overlaps_property = None;
let mut r#geo_touches_property = None;
let mut r#geo_within_property = None;
let mut r#global_location_number_property = None;
let mut r#has_drive_through_service_property = None;
let mut r#has_map_property = None;
let mut r#identifier_property = None;
let mut r#image_property = None;
let mut r#is_accessible_for_free_property = None;
let mut r#isic_v_4_property = None;
let mut r#keywords_property = None;
let mut r#latitude_property = None;
let mut r#logo_property = None;
let mut r#longitude_property = None;
let mut r#main_entity_of_page_property = None;
let mut r#map_property = None;
let mut r#maps_property = None;
let mut r#maximum_attendee_capacity_property = None;
let mut r#name_property = None;
let mut r#opening_hours_property = None;
let mut r#opening_hours_specification_property = None;
let mut r#photo_property = None;
let mut r#photos_property = None;
let mut r#potential_action_property = None;
let mut r#public_access_property = None;
let mut r#review_property = None;
let mut r#reviews_property = None;
let mut r#same_as_property = None;
let mut r#slogan_property = None;
let mut r#smoking_allowed_property = None;
let mut r#special_opening_hours_specification_property = None;
let mut r#subject_of_property = None;
let mut r#telephone_property = None;
let mut r#tour_booking_page_property = None;
let mut r#url_property = None;
while let Some(key) = map.next_key::<Field>()? {
match key {
Field::AdditionalProperty => {
if r#additional_property_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"additionalProperty",
));
}
r#additional_property_property = Some({
struct DeserializeWith(Vec<AdditionalPropertyProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::AdditionalType => {
if r#additional_type_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"additionalType",
));
}
r#additional_type_property = Some({
struct DeserializeWith(Vec<AdditionalTypeProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Address => {
if r#address_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"address",
));
}
r#address_property = Some({
struct DeserializeWith(Vec<AddressProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::AggregateRating => {
if r#aggregate_rating_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"aggregateRating",
));
}
r#aggregate_rating_property = Some({
struct DeserializeWith(Vec<AggregateRatingProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::AlternateName => {
if r#alternate_name_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"alternateName",
));
}
r#alternate_name_property = Some({
struct DeserializeWith(Vec<AlternateNameProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::AmenityFeature => {
if r#amenity_feature_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"amenityFeature",
));
}
r#amenity_feature_property = Some({
struct DeserializeWith(Vec<AmenityFeatureProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::BranchCode => {
if r#branch_code_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"branchCode",
));
}
r#branch_code_property = Some({
struct DeserializeWith(Vec<BranchCodeProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::ContainedIn => {
if r#contained_in_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"containedIn",
));
}
r#contained_in_property = Some({
struct DeserializeWith(Vec<ContainedInProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::ContainedInPlace => {
if r#contained_in_place_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"containedInPlace",
));
}
r#contained_in_place_property = Some({
struct DeserializeWith(Vec<ContainedInPlaceProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::ContainsPlace => {
if r#contains_place_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"containsPlace",
));
}
r#contains_place_property = Some({
struct DeserializeWith(Vec<ContainsPlaceProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Description => {
if r#description_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"description",
));
}
r#description_property = Some({
struct DeserializeWith(Vec<DescriptionProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::DisambiguatingDescription => {
if r#disambiguating_description_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"disambiguatingDescription",
));
}
r#disambiguating_description_property = Some({
struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Event => {
if r#event_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("event"));
}
r#event_property = Some({
struct DeserializeWith(Vec<EventProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Events => {
if r#events_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("events"));
}
r#events_property = Some({
struct DeserializeWith(Vec<EventsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::FaxNumber => {
if r#fax_number_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"faxNumber",
));
}
r#fax_number_property = Some({
struct DeserializeWith(Vec<FaxNumberProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Geo => {
if r#geo_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("geo"));
}
r#geo_property = Some({
struct DeserializeWith(Vec<GeoProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoContains => {
if r#geo_contains_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoContains",
));
}
r#geo_contains_property = Some({
struct DeserializeWith(Vec<GeoContainsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoCoveredBy => {
if r#geo_covered_by_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoCoveredBy",
));
}
r#geo_covered_by_property = Some({
struct DeserializeWith(Vec<GeoCoveredByProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoCovers => {
if r#geo_covers_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoCovers",
));
}
r#geo_covers_property = Some({
struct DeserializeWith(Vec<GeoCoversProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoCrosses => {
if r#geo_crosses_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoCrosses",
));
}
r#geo_crosses_property = Some({
struct DeserializeWith(Vec<GeoCrossesProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoDisjoint => {
if r#geo_disjoint_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoDisjoint",
));
}
r#geo_disjoint_property = Some({
struct DeserializeWith(Vec<GeoDisjointProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoEquals => {
if r#geo_equals_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoEquals",
));
}
r#geo_equals_property = Some({
struct DeserializeWith(Vec<GeoEqualsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoIntersects => {
if r#geo_intersects_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoIntersects",
));
}
r#geo_intersects_property = Some({
struct DeserializeWith(Vec<GeoIntersectsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoOverlaps => {
if r#geo_overlaps_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoOverlaps",
));
}
r#geo_overlaps_property = Some({
struct DeserializeWith(Vec<GeoOverlapsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoTouches => {
if r#geo_touches_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoTouches",
));
}
r#geo_touches_property = Some({
struct DeserializeWith(Vec<GeoTouchesProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GeoWithin => {
if r#geo_within_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"geoWithin",
));
}
r#geo_within_property = Some({
struct DeserializeWith(Vec<GeoWithinProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::GlobalLocationNumber => {
if r#global_location_number_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"globalLocationNumber",
));
}
r#global_location_number_property = Some({
struct DeserializeWith(Vec<GlobalLocationNumberProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::HasDriveThroughService => {
if r#has_drive_through_service_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"hasDriveThroughService",
));
}
r#has_drive_through_service_property = Some({
struct DeserializeWith(Vec<HasDriveThroughServiceProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::HasMap => {
if r#has_map_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("hasMap"));
}
r#has_map_property = Some({
struct DeserializeWith(Vec<HasMapProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Identifier => {
if r#identifier_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"identifier",
));
}
r#identifier_property = Some({
struct DeserializeWith(Vec<IdentifierProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Image => {
if r#image_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("image"));
}
r#image_property = Some({
struct DeserializeWith(Vec<ImageProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::IsAccessibleForFree => {
if r#is_accessible_for_free_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"isAccessibleForFree",
));
}
r#is_accessible_for_free_property = Some({
struct DeserializeWith(Vec<IsAccessibleForFreeProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::IsicV4 => {
if r#isic_v_4_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("isicV4"));
}
r#isic_v_4_property = Some({
struct DeserializeWith(Vec<IsicV4Property>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Keywords => {
if r#keywords_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"keywords",
));
}
r#keywords_property = Some({
struct DeserializeWith(Vec<KeywordsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Latitude => {
if r#latitude_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"latitude",
));
}
r#latitude_property = Some({
struct DeserializeWith(Vec<LatitudeProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Logo => {
if r#logo_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("logo"));
}
r#logo_property = Some({
struct DeserializeWith(Vec<LogoProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Longitude => {
if r#longitude_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"longitude",
));
}
r#longitude_property = Some({
struct DeserializeWith(Vec<LongitudeProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::MainEntityOfPage => {
if r#main_entity_of_page_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"mainEntityOfPage",
));
}
r#main_entity_of_page_property = Some({
struct DeserializeWith(Vec<MainEntityOfPageProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Map => {
if r#map_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("map"));
}
r#map_property = Some({
struct DeserializeWith(Vec<MapProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Maps => {
if r#maps_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("maps"));
}
r#maps_property = Some({
struct DeserializeWith(Vec<MapsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::MaximumAttendeeCapacity => {
if r#maximum_attendee_capacity_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"maximumAttendeeCapacity",
));
}
r#maximum_attendee_capacity_property = Some({
struct DeserializeWith(Vec<MaximumAttendeeCapacityProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Name => {
if r#name_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("name"));
}
r#name_property = Some({
struct DeserializeWith(Vec<NameProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::OpeningHours => {
if r#opening_hours_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"openingHours",
));
}
r#opening_hours_property = Some({
struct DeserializeWith(Vec<OpeningHoursProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::OpeningHoursSpecification => {
if r#opening_hours_specification_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"openingHoursSpecification",
));
}
r#opening_hours_specification_property = Some({
struct DeserializeWith(Vec<OpeningHoursSpecificationProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Photo => {
if r#photo_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("photo"));
}
r#photo_property = Some({
struct DeserializeWith(Vec<PhotoProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Photos => {
if r#photos_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("photos"));
}
r#photos_property = Some({
struct DeserializeWith(Vec<PhotosProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::PotentialAction => {
if r#potential_action_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"potentialAction",
));
}
r#potential_action_property = Some({
struct DeserializeWith(Vec<PotentialActionProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::PublicAccess => {
if r#public_access_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"publicAccess",
));
}
r#public_access_property = Some({
struct DeserializeWith(Vec<PublicAccessProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Review => {
if r#review_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("review"));
}
r#review_property = Some({
struct DeserializeWith(Vec<ReviewProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Reviews => {
if r#reviews_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"reviews",
));
}
r#reviews_property = Some({
struct DeserializeWith(Vec<ReviewsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::SameAs => {
if r#same_as_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
}
r#same_as_property = Some({
struct DeserializeWith(Vec<SameAsProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Slogan => {
if r#slogan_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("slogan"));
}
r#slogan_property = Some({
struct DeserializeWith(Vec<SloganProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::SmokingAllowed => {
if r#smoking_allowed_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"smokingAllowed",
));
}
r#smoking_allowed_property = Some({
struct DeserializeWith(Vec<SmokingAllowedProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::SpecialOpeningHoursSpecification => {
if r#special_opening_hours_specification_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"specialOpeningHoursSpecification",
));
}
r#special_opening_hours_specification_property = Some({
struct DeserializeWith(
Vec<SpecialOpeningHoursSpecificationProperty>,
);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::SubjectOf => {
if r#subject_of_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"subjectOf",
));
}
r#subject_of_property = Some({
struct DeserializeWith(Vec<SubjectOfProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Telephone => {
if r#telephone_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"telephone",
));
}
r#telephone_property = Some({
struct DeserializeWith(Vec<TelephoneProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::TourBookingPage => {
if r#tour_booking_page_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field(
"tourBookingPage",
));
}
r#tour_booking_page_property = Some({
struct DeserializeWith(Vec<TourBookingPageProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
Field::Url => {
if r#url_property.is_some() {
return Err(<A::Error as de::Error>::duplicate_field("url"));
}
r#url_property = Some({
struct DeserializeWith(Vec<UrlProperty>);
impl<'de> Deserialize<'de> for DeserializeWith {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
D: Deserializer<'de>,
{
Ok(DeserializeWith(serde_with::As::<
serde_with::OneOrMany<serde_with::Same>,
>::deserialize(deserializer)?))
}
}
match map.next_value::<DeserializeWith>() {
Ok(deserialize_with) => deserialize_with.0,
Err(err) => {
return Err(err);
}
}
});
}
_ => {
let _ = map.next_value::<de::IgnoredAny>()?;
}
}
}
Ok(Crematorium {
r#additional_property: r#additional_property_property.unwrap_or_default(),
r#additional_type: r#additional_type_property.unwrap_or_default(),
r#address: r#address_property.unwrap_or_default(),
r#aggregate_rating: r#aggregate_rating_property.unwrap_or_default(),
r#alternate_name: r#alternate_name_property.unwrap_or_default(),
r#amenity_feature: r#amenity_feature_property.unwrap_or_default(),
r#branch_code: r#branch_code_property.unwrap_or_default(),
r#contained_in: r#contained_in_property.unwrap_or_default(),
r#contained_in_place: r#contained_in_place_property.unwrap_or_default(),
r#contains_place: r#contains_place_property.unwrap_or_default(),
r#description: r#description_property.unwrap_or_default(),
r#disambiguating_description: r#disambiguating_description_property
.unwrap_or_default(),
r#event: r#event_property.unwrap_or_default(),
r#events: r#events_property.unwrap_or_default(),
r#fax_number: r#fax_number_property.unwrap_or_default(),
r#geo: r#geo_property.unwrap_or_default(),
r#geo_contains: r#geo_contains_property.unwrap_or_default(),
r#geo_covered_by: r#geo_covered_by_property.unwrap_or_default(),
r#geo_covers: r#geo_covers_property.unwrap_or_default(),
r#geo_crosses: r#geo_crosses_property.unwrap_or_default(),
r#geo_disjoint: r#geo_disjoint_property.unwrap_or_default(),
r#geo_equals: r#geo_equals_property.unwrap_or_default(),
r#geo_intersects: r#geo_intersects_property.unwrap_or_default(),
r#geo_overlaps: r#geo_overlaps_property.unwrap_or_default(),
r#geo_touches: r#geo_touches_property.unwrap_or_default(),
r#geo_within: r#geo_within_property.unwrap_or_default(),
r#global_location_number: r#global_location_number_property
.unwrap_or_default(),
r#has_drive_through_service: r#has_drive_through_service_property
.unwrap_or_default(),
r#has_map: r#has_map_property.unwrap_or_default(),
r#identifier: r#identifier_property.unwrap_or_default(),
r#image: r#image_property.unwrap_or_default(),
r#is_accessible_for_free: r#is_accessible_for_free_property
.unwrap_or_default(),
r#isic_v_4: r#isic_v_4_property.unwrap_or_default(),
r#keywords: r#keywords_property.unwrap_or_default(),
r#latitude: r#latitude_property.unwrap_or_default(),
r#logo: r#logo_property.unwrap_or_default(),
r#longitude: r#longitude_property.unwrap_or_default(),
r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
r#map: r#map_property.unwrap_or_default(),
r#maps: r#maps_property.unwrap_or_default(),
r#maximum_attendee_capacity: r#maximum_attendee_capacity_property
.unwrap_or_default(),
r#name: r#name_property.unwrap_or_default(),
r#opening_hours: r#opening_hours_property.unwrap_or_default(),
r#opening_hours_specification: r#opening_hours_specification_property
.unwrap_or_default(),
r#photo: r#photo_property.unwrap_or_default(),
r#photos: r#photos_property.unwrap_or_default(),
r#potential_action: r#potential_action_property.unwrap_or_default(),
r#public_access: r#public_access_property.unwrap_or_default(),
r#review: r#review_property.unwrap_or_default(),
r#reviews: r#reviews_property.unwrap_or_default(),
r#same_as: r#same_as_property.unwrap_or_default(),
r#slogan: r#slogan_property.unwrap_or_default(),
r#smoking_allowed: r#smoking_allowed_property.unwrap_or_default(),
r#special_opening_hours_specification:
r#special_opening_hours_specification_property.unwrap_or_default(),
r#subject_of: r#subject_of_property.unwrap_or_default(),
r#telephone: r#telephone_property.unwrap_or_default(),
r#tour_booking_page: r#tour_booking_page_property.unwrap_or_default(),
r#url: r#url_property.unwrap_or_default(),
})
}
}
const FIELDS: &[&str] = &[
"additionalProperty",
"additionalType",
"address",
"aggregateRating",
"alternateName",
"amenityFeature",
"branchCode",
"containedIn",
"containedInPlace",
"containsPlace",
"description",
"disambiguatingDescription",
"event",
"events",
"faxNumber",
"geo",
"geoContains",
"geoCoveredBy",
"geoCovers",
"geoCrosses",
"geoDisjoint",
"geoEquals",
"geoIntersects",
"geoOverlaps",
"geoTouches",
"geoWithin",
"globalLocationNumber",
"hasDriveThroughService",
"hasMap",
"identifier",
"image",
"isAccessibleForFree",
"isicV4",
"keywords",
"latitude",
"logo",
"longitude",
"mainEntityOfPage",
"map",
"maps",
"maximumAttendeeCapacity",
"name",
"openingHours",
"openingHoursSpecification",
"photo",
"photos",
"potentialAction",
"publicAccess",
"review",
"reviews",
"sameAs",
"slogan",
"smokingAllowed",
"specialOpeningHoursSpecification",
"subjectOf",
"telephone",
"tourBookingPage",
"url",
];
deserializer.deserialize_struct("Crematorium", FIELDS, ClassVisitor)
}
}
}