1use super::*;
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct Place {
6 pub r#additional_property: Vec<AdditionalPropertyProperty>,
8 pub r#address: Vec<AddressProperty>,
10 pub r#aggregate_rating: Vec<AggregateRatingProperty>,
12 pub r#amenity_feature: Vec<AmenityFeatureProperty>,
14 pub r#branch_code: Vec<BranchCodeProperty>,
16 #[deprecated = "This schema is superseded by <https://schema.org/containedInPlace>."]
18 pub r#contained_in: Vec<ContainedInProperty>,
19 pub r#contained_in_place: Vec<ContainedInPlaceProperty>,
21 pub r#contains_place: Vec<ContainsPlaceProperty>,
23 pub r#event: Vec<EventProperty>,
25 #[deprecated = "This schema is superseded by <https://schema.org/event>."]
27 pub r#events: Vec<EventsProperty>,
28 pub r#fax_number: Vec<FaxNumberProperty>,
30 pub r#geo: Vec<GeoProperty>,
32 pub r#geo_contains: Vec<GeoContainsProperty>,
34 pub r#geo_covered_by: Vec<GeoCoveredByProperty>,
36 pub r#geo_covers: Vec<GeoCoversProperty>,
38 pub r#geo_crosses: Vec<GeoCrossesProperty>,
40 pub r#geo_disjoint: Vec<GeoDisjointProperty>,
42 pub r#geo_equals: Vec<GeoEqualsProperty>,
44 pub r#geo_intersects: Vec<GeoIntersectsProperty>,
46 pub r#geo_overlaps: Vec<GeoOverlapsProperty>,
48 pub r#geo_touches: Vec<GeoTouchesProperty>,
50 pub r#geo_within: Vec<GeoWithinProperty>,
52 pub r#global_location_number: Vec<GlobalLocationNumberProperty>,
54 pub r#has_drive_through_service: Vec<HasDriveThroughServiceProperty>,
56 pub r#has_map: Vec<HasMapProperty>,
58 pub r#is_accessible_for_free: Vec<IsAccessibleForFreeProperty>,
60 pub r#isic_v_4: Vec<IsicV4Property>,
62 pub r#keywords: Vec<KeywordsProperty>,
64 pub r#latitude: Vec<LatitudeProperty>,
66 pub r#logo: Vec<LogoProperty>,
68 pub r#longitude: Vec<LongitudeProperty>,
70 #[deprecated = "This schema is superseded by <https://schema.org/hasMap>."]
72 pub r#map: Vec<MapProperty>,
73 #[deprecated = "This schema is superseded by <https://schema.org/hasMap>."]
75 pub r#maps: Vec<MapsProperty>,
76 pub r#maximum_attendee_capacity: Vec<MaximumAttendeeCapacityProperty>,
78 pub r#opening_hours_specification: Vec<OpeningHoursSpecificationProperty>,
80 pub r#photo: Vec<PhotoProperty>,
82 #[deprecated = "This schema is superseded by <https://schema.org/photo>."]
84 pub r#photos: Vec<PhotosProperty>,
85 pub r#public_access: Vec<PublicAccessProperty>,
87 pub r#review: Vec<ReviewProperty>,
89 #[deprecated = "This schema is superseded by <https://schema.org/review>."]
91 pub r#reviews: Vec<ReviewsProperty>,
92 pub r#slogan: Vec<SloganProperty>,
94 pub r#smoking_allowed: Vec<SmokingAllowedProperty>,
96 pub r#special_opening_hours_specification: Vec<SpecialOpeningHoursSpecificationProperty>,
98 pub r#telephone: Vec<TelephoneProperty>,
100 pub r#tour_booking_page: Vec<TourBookingPageProperty>,
102 pub r#additional_type: Vec<AdditionalTypeProperty>,
104 pub r#alternate_name: Vec<AlternateNameProperty>,
106 pub r#description: Vec<DescriptionProperty>,
108 pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
110 pub r#identifier: Vec<IdentifierProperty>,
112 pub r#image: Vec<ImageProperty>,
114 pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
116 pub r#name: Vec<NameProperty>,
118 pub r#potential_action: Vec<PotentialActionProperty>,
120 pub r#same_as: Vec<SameAsProperty>,
122 pub r#subject_of: Vec<SubjectOfProperty>,
124 pub r#url: Vec<UrlProperty>,
126}
127pub trait PlaceTrait {
129 fn get_additional_property(&self) -> &[AdditionalPropertyProperty];
131 fn take_additional_property(&mut self) -> Vec<AdditionalPropertyProperty>;
133 fn get_address(&self) -> &[AddressProperty];
135 fn take_address(&mut self) -> Vec<AddressProperty>;
137 fn get_aggregate_rating(&self) -> &[AggregateRatingProperty];
139 fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty>;
141 fn get_amenity_feature(&self) -> &[AmenityFeatureProperty];
143 fn take_amenity_feature(&mut self) -> Vec<AmenityFeatureProperty>;
145 fn get_branch_code(&self) -> &[BranchCodeProperty];
147 fn take_branch_code(&mut self) -> Vec<BranchCodeProperty>;
149 #[deprecated = "This schema is superseded by <https://schema.org/containedInPlace>."]
151 fn get_contained_in(&self) -> &[ContainedInProperty];
152 #[deprecated = "This schema is superseded by <https://schema.org/containedInPlace>."]
154 fn take_contained_in(&mut self) -> Vec<ContainedInProperty>;
155 fn get_contained_in_place(&self) -> &[ContainedInPlaceProperty];
157 fn take_contained_in_place(&mut self) -> Vec<ContainedInPlaceProperty>;
159 fn get_contains_place(&self) -> &[ContainsPlaceProperty];
161 fn take_contains_place(&mut self) -> Vec<ContainsPlaceProperty>;
163 fn get_event(&self) -> &[EventProperty];
165 fn take_event(&mut self) -> Vec<EventProperty>;
167 #[deprecated = "This schema is superseded by <https://schema.org/event>."]
169 fn get_events(&self) -> &[EventsProperty];
170 #[deprecated = "This schema is superseded by <https://schema.org/event>."]
172 fn take_events(&mut self) -> Vec<EventsProperty>;
173 fn get_fax_number(&self) -> &[FaxNumberProperty];
175 fn take_fax_number(&mut self) -> Vec<FaxNumberProperty>;
177 fn get_geo(&self) -> &[GeoProperty];
179 fn take_geo(&mut self) -> Vec<GeoProperty>;
181 fn get_geo_contains(&self) -> &[GeoContainsProperty];
183 fn take_geo_contains(&mut self) -> Vec<GeoContainsProperty>;
185 fn get_geo_covered_by(&self) -> &[GeoCoveredByProperty];
187 fn take_geo_covered_by(&mut self) -> Vec<GeoCoveredByProperty>;
189 fn get_geo_covers(&self) -> &[GeoCoversProperty];
191 fn take_geo_covers(&mut self) -> Vec<GeoCoversProperty>;
193 fn get_geo_crosses(&self) -> &[GeoCrossesProperty];
195 fn take_geo_crosses(&mut self) -> Vec<GeoCrossesProperty>;
197 fn get_geo_disjoint(&self) -> &[GeoDisjointProperty];
199 fn take_geo_disjoint(&mut self) -> Vec<GeoDisjointProperty>;
201 fn get_geo_equals(&self) -> &[GeoEqualsProperty];
203 fn take_geo_equals(&mut self) -> Vec<GeoEqualsProperty>;
205 fn get_geo_intersects(&self) -> &[GeoIntersectsProperty];
207 fn take_geo_intersects(&mut self) -> Vec<GeoIntersectsProperty>;
209 fn get_geo_overlaps(&self) -> &[GeoOverlapsProperty];
211 fn take_geo_overlaps(&mut self) -> Vec<GeoOverlapsProperty>;
213 fn get_geo_touches(&self) -> &[GeoTouchesProperty];
215 fn take_geo_touches(&mut self) -> Vec<GeoTouchesProperty>;
217 fn get_geo_within(&self) -> &[GeoWithinProperty];
219 fn take_geo_within(&mut self) -> Vec<GeoWithinProperty>;
221 fn get_global_location_number(&self) -> &[GlobalLocationNumberProperty];
223 fn take_global_location_number(&mut self) -> Vec<GlobalLocationNumberProperty>;
225 fn get_has_drive_through_service(&self) -> &[HasDriveThroughServiceProperty];
227 fn take_has_drive_through_service(&mut self) -> Vec<HasDriveThroughServiceProperty>;
229 fn get_has_map(&self) -> &[HasMapProperty];
231 fn take_has_map(&mut self) -> Vec<HasMapProperty>;
233 fn get_is_accessible_for_free(&self) -> &[IsAccessibleForFreeProperty];
235 fn take_is_accessible_for_free(&mut self) -> Vec<IsAccessibleForFreeProperty>;
237 fn get_isic_v_4(&self) -> &[IsicV4Property];
239 fn take_isic_v_4(&mut self) -> Vec<IsicV4Property>;
241 fn get_keywords(&self) -> &[KeywordsProperty];
243 fn take_keywords(&mut self) -> Vec<KeywordsProperty>;
245 fn get_latitude(&self) -> &[LatitudeProperty];
247 fn take_latitude(&mut self) -> Vec<LatitudeProperty>;
249 fn get_logo(&self) -> &[LogoProperty];
251 fn take_logo(&mut self) -> Vec<LogoProperty>;
253 fn get_longitude(&self) -> &[LongitudeProperty];
255 fn take_longitude(&mut self) -> Vec<LongitudeProperty>;
257 #[deprecated = "This schema is superseded by <https://schema.org/hasMap>."]
259 fn get_map(&self) -> &[MapProperty];
260 #[deprecated = "This schema is superseded by <https://schema.org/hasMap>."]
262 fn take_map(&mut self) -> Vec<MapProperty>;
263 #[deprecated = "This schema is superseded by <https://schema.org/hasMap>."]
265 fn get_maps(&self) -> &[MapsProperty];
266 #[deprecated = "This schema is superseded by <https://schema.org/hasMap>."]
268 fn take_maps(&mut self) -> Vec<MapsProperty>;
269 fn get_maximum_attendee_capacity(&self) -> &[MaximumAttendeeCapacityProperty];
271 fn take_maximum_attendee_capacity(&mut self) -> Vec<MaximumAttendeeCapacityProperty>;
273 fn get_opening_hours_specification(&self) -> &[OpeningHoursSpecificationProperty];
275 fn take_opening_hours_specification(&mut self) -> Vec<OpeningHoursSpecificationProperty>;
277 fn get_photo(&self) -> &[PhotoProperty];
279 fn take_photo(&mut self) -> Vec<PhotoProperty>;
281 #[deprecated = "This schema is superseded by <https://schema.org/photo>."]
283 fn get_photos(&self) -> &[PhotosProperty];
284 #[deprecated = "This schema is superseded by <https://schema.org/photo>."]
286 fn take_photos(&mut self) -> Vec<PhotosProperty>;
287 fn get_public_access(&self) -> &[PublicAccessProperty];
289 fn take_public_access(&mut self) -> Vec<PublicAccessProperty>;
291 fn get_review(&self) -> &[ReviewProperty];
293 fn take_review(&mut self) -> Vec<ReviewProperty>;
295 #[deprecated = "This schema is superseded by <https://schema.org/review>."]
297 fn get_reviews(&self) -> &[ReviewsProperty];
298 #[deprecated = "This schema is superseded by <https://schema.org/review>."]
300 fn take_reviews(&mut self) -> Vec<ReviewsProperty>;
301 fn get_slogan(&self) -> &[SloganProperty];
303 fn take_slogan(&mut self) -> Vec<SloganProperty>;
305 fn get_smoking_allowed(&self) -> &[SmokingAllowedProperty];
307 fn take_smoking_allowed(&mut self) -> Vec<SmokingAllowedProperty>;
309 fn get_special_opening_hours_specification(
311 &self,
312 ) -> &[SpecialOpeningHoursSpecificationProperty];
313 fn take_special_opening_hours_specification(
315 &mut self,
316 ) -> Vec<SpecialOpeningHoursSpecificationProperty>;
317 fn get_telephone(&self) -> &[TelephoneProperty];
319 fn take_telephone(&mut self) -> Vec<TelephoneProperty>;
321 fn get_tour_booking_page(&self) -> &[TourBookingPageProperty];
323 fn take_tour_booking_page(&mut self) -> Vec<TourBookingPageProperty>;
325}
326impl PlaceTrait for Place {
327 fn get_additional_property(&self) -> &[AdditionalPropertyProperty] {
328 self.r#additional_property.as_slice()
329 }
330 fn take_additional_property(&mut self) -> Vec<AdditionalPropertyProperty> {
331 std::mem::take(&mut self.r#additional_property)
332 }
333 fn get_address(&self) -> &[AddressProperty] {
334 self.r#address.as_slice()
335 }
336 fn take_address(&mut self) -> Vec<AddressProperty> {
337 std::mem::take(&mut self.r#address)
338 }
339 fn get_aggregate_rating(&self) -> &[AggregateRatingProperty] {
340 self.r#aggregate_rating.as_slice()
341 }
342 fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty> {
343 std::mem::take(&mut self.r#aggregate_rating)
344 }
345 fn get_amenity_feature(&self) -> &[AmenityFeatureProperty] {
346 self.r#amenity_feature.as_slice()
347 }
348 fn take_amenity_feature(&mut self) -> Vec<AmenityFeatureProperty> {
349 std::mem::take(&mut self.r#amenity_feature)
350 }
351 fn get_branch_code(&self) -> &[BranchCodeProperty] {
352 self.r#branch_code.as_slice()
353 }
354 fn take_branch_code(&mut self) -> Vec<BranchCodeProperty> {
355 std::mem::take(&mut self.r#branch_code)
356 }
357 fn get_contained_in(&self) -> &[ContainedInProperty] {
358 self.r#contained_in.as_slice()
359 }
360 fn take_contained_in(&mut self) -> Vec<ContainedInProperty> {
361 std::mem::take(&mut self.r#contained_in)
362 }
363 fn get_contained_in_place(&self) -> &[ContainedInPlaceProperty] {
364 self.r#contained_in_place.as_slice()
365 }
366 fn take_contained_in_place(&mut self) -> Vec<ContainedInPlaceProperty> {
367 std::mem::take(&mut self.r#contained_in_place)
368 }
369 fn get_contains_place(&self) -> &[ContainsPlaceProperty] {
370 self.r#contains_place.as_slice()
371 }
372 fn take_contains_place(&mut self) -> Vec<ContainsPlaceProperty> {
373 std::mem::take(&mut self.r#contains_place)
374 }
375 fn get_event(&self) -> &[EventProperty] {
376 self.r#event.as_slice()
377 }
378 fn take_event(&mut self) -> Vec<EventProperty> {
379 std::mem::take(&mut self.r#event)
380 }
381 fn get_events(&self) -> &[EventsProperty] {
382 self.r#events.as_slice()
383 }
384 fn take_events(&mut self) -> Vec<EventsProperty> {
385 std::mem::take(&mut self.r#events)
386 }
387 fn get_fax_number(&self) -> &[FaxNumberProperty] {
388 self.r#fax_number.as_slice()
389 }
390 fn take_fax_number(&mut self) -> Vec<FaxNumberProperty> {
391 std::mem::take(&mut self.r#fax_number)
392 }
393 fn get_geo(&self) -> &[GeoProperty] {
394 self.r#geo.as_slice()
395 }
396 fn take_geo(&mut self) -> Vec<GeoProperty> {
397 std::mem::take(&mut self.r#geo)
398 }
399 fn get_geo_contains(&self) -> &[GeoContainsProperty] {
400 self.r#geo_contains.as_slice()
401 }
402 fn take_geo_contains(&mut self) -> Vec<GeoContainsProperty> {
403 std::mem::take(&mut self.r#geo_contains)
404 }
405 fn get_geo_covered_by(&self) -> &[GeoCoveredByProperty] {
406 self.r#geo_covered_by.as_slice()
407 }
408 fn take_geo_covered_by(&mut self) -> Vec<GeoCoveredByProperty> {
409 std::mem::take(&mut self.r#geo_covered_by)
410 }
411 fn get_geo_covers(&self) -> &[GeoCoversProperty] {
412 self.r#geo_covers.as_slice()
413 }
414 fn take_geo_covers(&mut self) -> Vec<GeoCoversProperty> {
415 std::mem::take(&mut self.r#geo_covers)
416 }
417 fn get_geo_crosses(&self) -> &[GeoCrossesProperty] {
418 self.r#geo_crosses.as_slice()
419 }
420 fn take_geo_crosses(&mut self) -> Vec<GeoCrossesProperty> {
421 std::mem::take(&mut self.r#geo_crosses)
422 }
423 fn get_geo_disjoint(&self) -> &[GeoDisjointProperty] {
424 self.r#geo_disjoint.as_slice()
425 }
426 fn take_geo_disjoint(&mut self) -> Vec<GeoDisjointProperty> {
427 std::mem::take(&mut self.r#geo_disjoint)
428 }
429 fn get_geo_equals(&self) -> &[GeoEqualsProperty] {
430 self.r#geo_equals.as_slice()
431 }
432 fn take_geo_equals(&mut self) -> Vec<GeoEqualsProperty> {
433 std::mem::take(&mut self.r#geo_equals)
434 }
435 fn get_geo_intersects(&self) -> &[GeoIntersectsProperty] {
436 self.r#geo_intersects.as_slice()
437 }
438 fn take_geo_intersects(&mut self) -> Vec<GeoIntersectsProperty> {
439 std::mem::take(&mut self.r#geo_intersects)
440 }
441 fn get_geo_overlaps(&self) -> &[GeoOverlapsProperty] {
442 self.r#geo_overlaps.as_slice()
443 }
444 fn take_geo_overlaps(&mut self) -> Vec<GeoOverlapsProperty> {
445 std::mem::take(&mut self.r#geo_overlaps)
446 }
447 fn get_geo_touches(&self) -> &[GeoTouchesProperty] {
448 self.r#geo_touches.as_slice()
449 }
450 fn take_geo_touches(&mut self) -> Vec<GeoTouchesProperty> {
451 std::mem::take(&mut self.r#geo_touches)
452 }
453 fn get_geo_within(&self) -> &[GeoWithinProperty] {
454 self.r#geo_within.as_slice()
455 }
456 fn take_geo_within(&mut self) -> Vec<GeoWithinProperty> {
457 std::mem::take(&mut self.r#geo_within)
458 }
459 fn get_global_location_number(&self) -> &[GlobalLocationNumberProperty] {
460 self.r#global_location_number.as_slice()
461 }
462 fn take_global_location_number(&mut self) -> Vec<GlobalLocationNumberProperty> {
463 std::mem::take(&mut self.r#global_location_number)
464 }
465 fn get_has_drive_through_service(&self) -> &[HasDriveThroughServiceProperty] {
466 self.r#has_drive_through_service.as_slice()
467 }
468 fn take_has_drive_through_service(&mut self) -> Vec<HasDriveThroughServiceProperty> {
469 std::mem::take(&mut self.r#has_drive_through_service)
470 }
471 fn get_has_map(&self) -> &[HasMapProperty] {
472 self.r#has_map.as_slice()
473 }
474 fn take_has_map(&mut self) -> Vec<HasMapProperty> {
475 std::mem::take(&mut self.r#has_map)
476 }
477 fn get_is_accessible_for_free(&self) -> &[IsAccessibleForFreeProperty] {
478 self.r#is_accessible_for_free.as_slice()
479 }
480 fn take_is_accessible_for_free(&mut self) -> Vec<IsAccessibleForFreeProperty> {
481 std::mem::take(&mut self.r#is_accessible_for_free)
482 }
483 fn get_isic_v_4(&self) -> &[IsicV4Property] {
484 self.r#isic_v_4.as_slice()
485 }
486 fn take_isic_v_4(&mut self) -> Vec<IsicV4Property> {
487 std::mem::take(&mut self.r#isic_v_4)
488 }
489 fn get_keywords(&self) -> &[KeywordsProperty] {
490 self.r#keywords.as_slice()
491 }
492 fn take_keywords(&mut self) -> Vec<KeywordsProperty> {
493 std::mem::take(&mut self.r#keywords)
494 }
495 fn get_latitude(&self) -> &[LatitudeProperty] {
496 self.r#latitude.as_slice()
497 }
498 fn take_latitude(&mut self) -> Vec<LatitudeProperty> {
499 std::mem::take(&mut self.r#latitude)
500 }
501 fn get_logo(&self) -> &[LogoProperty] {
502 self.r#logo.as_slice()
503 }
504 fn take_logo(&mut self) -> Vec<LogoProperty> {
505 std::mem::take(&mut self.r#logo)
506 }
507 fn get_longitude(&self) -> &[LongitudeProperty] {
508 self.r#longitude.as_slice()
509 }
510 fn take_longitude(&mut self) -> Vec<LongitudeProperty> {
511 std::mem::take(&mut self.r#longitude)
512 }
513 fn get_map(&self) -> &[MapProperty] {
514 self.r#map.as_slice()
515 }
516 fn take_map(&mut self) -> Vec<MapProperty> {
517 std::mem::take(&mut self.r#map)
518 }
519 fn get_maps(&self) -> &[MapsProperty] {
520 self.r#maps.as_slice()
521 }
522 fn take_maps(&mut self) -> Vec<MapsProperty> {
523 std::mem::take(&mut self.r#maps)
524 }
525 fn get_maximum_attendee_capacity(&self) -> &[MaximumAttendeeCapacityProperty] {
526 self.r#maximum_attendee_capacity.as_slice()
527 }
528 fn take_maximum_attendee_capacity(&mut self) -> Vec<MaximumAttendeeCapacityProperty> {
529 std::mem::take(&mut self.r#maximum_attendee_capacity)
530 }
531 fn get_opening_hours_specification(&self) -> &[OpeningHoursSpecificationProperty] {
532 self.r#opening_hours_specification.as_slice()
533 }
534 fn take_opening_hours_specification(&mut self) -> Vec<OpeningHoursSpecificationProperty> {
535 std::mem::take(&mut self.r#opening_hours_specification)
536 }
537 fn get_photo(&self) -> &[PhotoProperty] {
538 self.r#photo.as_slice()
539 }
540 fn take_photo(&mut self) -> Vec<PhotoProperty> {
541 std::mem::take(&mut self.r#photo)
542 }
543 fn get_photos(&self) -> &[PhotosProperty] {
544 self.r#photos.as_slice()
545 }
546 fn take_photos(&mut self) -> Vec<PhotosProperty> {
547 std::mem::take(&mut self.r#photos)
548 }
549 fn get_public_access(&self) -> &[PublicAccessProperty] {
550 self.r#public_access.as_slice()
551 }
552 fn take_public_access(&mut self) -> Vec<PublicAccessProperty> {
553 std::mem::take(&mut self.r#public_access)
554 }
555 fn get_review(&self) -> &[ReviewProperty] {
556 self.r#review.as_slice()
557 }
558 fn take_review(&mut self) -> Vec<ReviewProperty> {
559 std::mem::take(&mut self.r#review)
560 }
561 fn get_reviews(&self) -> &[ReviewsProperty] {
562 self.r#reviews.as_slice()
563 }
564 fn take_reviews(&mut self) -> Vec<ReviewsProperty> {
565 std::mem::take(&mut self.r#reviews)
566 }
567 fn get_slogan(&self) -> &[SloganProperty] {
568 self.r#slogan.as_slice()
569 }
570 fn take_slogan(&mut self) -> Vec<SloganProperty> {
571 std::mem::take(&mut self.r#slogan)
572 }
573 fn get_smoking_allowed(&self) -> &[SmokingAllowedProperty] {
574 self.r#smoking_allowed.as_slice()
575 }
576 fn take_smoking_allowed(&mut self) -> Vec<SmokingAllowedProperty> {
577 std::mem::take(&mut self.r#smoking_allowed)
578 }
579 fn get_special_opening_hours_specification(
580 &self,
581 ) -> &[SpecialOpeningHoursSpecificationProperty] {
582 self.r#special_opening_hours_specification.as_slice()
583 }
584 fn take_special_opening_hours_specification(
585 &mut self,
586 ) -> Vec<SpecialOpeningHoursSpecificationProperty> {
587 std::mem::take(&mut self.r#special_opening_hours_specification)
588 }
589 fn get_telephone(&self) -> &[TelephoneProperty] {
590 self.r#telephone.as_slice()
591 }
592 fn take_telephone(&mut self) -> Vec<TelephoneProperty> {
593 std::mem::take(&mut self.r#telephone)
594 }
595 fn get_tour_booking_page(&self) -> &[TourBookingPageProperty] {
596 self.r#tour_booking_page.as_slice()
597 }
598 fn take_tour_booking_page(&mut self) -> Vec<TourBookingPageProperty> {
599 std::mem::take(&mut self.r#tour_booking_page)
600 }
601}
602impl ThingTrait for Place {
603 fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
604 self.r#additional_type.as_slice()
605 }
606 fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
607 std::mem::take(&mut self.r#additional_type)
608 }
609 fn get_alternate_name(&self) -> &[AlternateNameProperty] {
610 self.r#alternate_name.as_slice()
611 }
612 fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
613 std::mem::take(&mut self.r#alternate_name)
614 }
615 fn get_description(&self) -> &[DescriptionProperty] {
616 self.r#description.as_slice()
617 }
618 fn take_description(&mut self) -> Vec<DescriptionProperty> {
619 std::mem::take(&mut self.r#description)
620 }
621 fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
622 self.r#disambiguating_description.as_slice()
623 }
624 fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
625 std::mem::take(&mut self.r#disambiguating_description)
626 }
627 fn get_identifier(&self) -> &[IdentifierProperty] {
628 self.r#identifier.as_slice()
629 }
630 fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
631 std::mem::take(&mut self.r#identifier)
632 }
633 fn get_image(&self) -> &[ImageProperty] {
634 self.r#image.as_slice()
635 }
636 fn take_image(&mut self) -> Vec<ImageProperty> {
637 std::mem::take(&mut self.r#image)
638 }
639 fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
640 self.r#main_entity_of_page.as_slice()
641 }
642 fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
643 std::mem::take(&mut self.r#main_entity_of_page)
644 }
645 fn get_name(&self) -> &[NameProperty] {
646 self.r#name.as_slice()
647 }
648 fn take_name(&mut self) -> Vec<NameProperty> {
649 std::mem::take(&mut self.r#name)
650 }
651 fn get_potential_action(&self) -> &[PotentialActionProperty] {
652 self.r#potential_action.as_slice()
653 }
654 fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
655 std::mem::take(&mut self.r#potential_action)
656 }
657 fn get_same_as(&self) -> &[SameAsProperty] {
658 self.r#same_as.as_slice()
659 }
660 fn take_same_as(&mut self) -> Vec<SameAsProperty> {
661 std::mem::take(&mut self.r#same_as)
662 }
663 fn get_subject_of(&self) -> &[SubjectOfProperty] {
664 self.r#subject_of.as_slice()
665 }
666 fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
667 std::mem::take(&mut self.r#subject_of)
668 }
669 fn get_url(&self) -> &[UrlProperty] {
670 self.r#url.as_slice()
671 }
672 fn take_url(&mut self) -> Vec<UrlProperty> {
673 std::mem::take(&mut self.r#url)
674 }
675}
676#[cfg(feature = "serde")]
677mod serde {
678 use std::{fmt, fmt::Formatter};
679
680 use ::serde::{
681 de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
682 };
683
684 use super::*;
685 impl Serialize for Place {
686 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
687 where
688 S: Serializer,
689 {
690 let len: usize = [
691 !Vec::is_empty(&self.r#additional_property) as usize,
692 !Vec::is_empty(&self.r#address) as usize,
693 !Vec::is_empty(&self.r#aggregate_rating) as usize,
694 !Vec::is_empty(&self.r#amenity_feature) as usize,
695 !Vec::is_empty(&self.r#branch_code) as usize,
696 !Vec::is_empty(&self.r#contained_in) as usize,
697 !Vec::is_empty(&self.r#contained_in_place) as usize,
698 !Vec::is_empty(&self.r#contains_place) as usize,
699 !Vec::is_empty(&self.r#event) as usize,
700 !Vec::is_empty(&self.r#events) as usize,
701 !Vec::is_empty(&self.r#fax_number) as usize,
702 !Vec::is_empty(&self.r#geo) as usize,
703 !Vec::is_empty(&self.r#geo_contains) as usize,
704 !Vec::is_empty(&self.r#geo_covered_by) as usize,
705 !Vec::is_empty(&self.r#geo_covers) as usize,
706 !Vec::is_empty(&self.r#geo_crosses) as usize,
707 !Vec::is_empty(&self.r#geo_disjoint) as usize,
708 !Vec::is_empty(&self.r#geo_equals) as usize,
709 !Vec::is_empty(&self.r#geo_intersects) as usize,
710 !Vec::is_empty(&self.r#geo_overlaps) as usize,
711 !Vec::is_empty(&self.r#geo_touches) as usize,
712 !Vec::is_empty(&self.r#geo_within) as usize,
713 !Vec::is_empty(&self.r#global_location_number) as usize,
714 !Vec::is_empty(&self.r#has_drive_through_service) as usize,
715 !Vec::is_empty(&self.r#has_map) as usize,
716 !Vec::is_empty(&self.r#is_accessible_for_free) as usize,
717 !Vec::is_empty(&self.r#isic_v_4) as usize,
718 !Vec::is_empty(&self.r#keywords) as usize,
719 !Vec::is_empty(&self.r#latitude) as usize,
720 !Vec::is_empty(&self.r#logo) as usize,
721 !Vec::is_empty(&self.r#longitude) as usize,
722 !Vec::is_empty(&self.r#map) as usize,
723 !Vec::is_empty(&self.r#maps) as usize,
724 !Vec::is_empty(&self.r#maximum_attendee_capacity) as usize,
725 !Vec::is_empty(&self.r#opening_hours_specification) as usize,
726 !Vec::is_empty(&self.r#photo) as usize,
727 !Vec::is_empty(&self.r#photos) as usize,
728 !Vec::is_empty(&self.r#public_access) as usize,
729 !Vec::is_empty(&self.r#review) as usize,
730 !Vec::is_empty(&self.r#reviews) as usize,
731 !Vec::is_empty(&self.r#slogan) as usize,
732 !Vec::is_empty(&self.r#smoking_allowed) as usize,
733 !Vec::is_empty(&self.r#special_opening_hours_specification) as usize,
734 !Vec::is_empty(&self.r#telephone) as usize,
735 !Vec::is_empty(&self.r#tour_booking_page) as usize,
736 !Vec::is_empty(&self.r#additional_type) as usize,
737 !Vec::is_empty(&self.r#alternate_name) as usize,
738 !Vec::is_empty(&self.r#description) as usize,
739 !Vec::is_empty(&self.r#disambiguating_description) as usize,
740 !Vec::is_empty(&self.r#identifier) as usize,
741 !Vec::is_empty(&self.r#image) as usize,
742 !Vec::is_empty(&self.r#main_entity_of_page) as usize,
743 !Vec::is_empty(&self.r#name) as usize,
744 !Vec::is_empty(&self.r#potential_action) as usize,
745 !Vec::is_empty(&self.r#same_as) as usize,
746 !Vec::is_empty(&self.r#subject_of) as usize,
747 !Vec::is_empty(&self.r#url) as usize,
748 ]
749 .iter()
750 .sum();
751 let mut serialize_struct = Serializer::serialize_struct(serializer, "Place", len)?;
752 if !Vec::is_empty(&self.r#additional_property) {
753 serialize_struct.serialize_field("additionalProperty", {
754 struct SerializeWith<'a>(&'a Vec<AdditionalPropertyProperty>);
755 impl<'a> Serialize for SerializeWith<'a> {
756 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
757 where
758 S: Serializer,
759 {
760 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
761 self.0, serializer,
762 )
763 }
764 }
765 &SerializeWith(&self.r#additional_property)
766 })?;
767 } else {
768 serialize_struct.skip_field("additionalProperty")?;
769 }
770 if !Vec::is_empty(&self.r#address) {
771 serialize_struct.serialize_field("address", {
772 struct SerializeWith<'a>(&'a Vec<AddressProperty>);
773 impl<'a> Serialize for SerializeWith<'a> {
774 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
775 where
776 S: Serializer,
777 {
778 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
779 self.0, serializer,
780 )
781 }
782 }
783 &SerializeWith(&self.r#address)
784 })?;
785 } else {
786 serialize_struct.skip_field("address")?;
787 }
788 if !Vec::is_empty(&self.r#aggregate_rating) {
789 serialize_struct.serialize_field("aggregateRating", {
790 struct SerializeWith<'a>(&'a Vec<AggregateRatingProperty>);
791 impl<'a> Serialize for SerializeWith<'a> {
792 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
793 where
794 S: Serializer,
795 {
796 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
797 self.0, serializer,
798 )
799 }
800 }
801 &SerializeWith(&self.r#aggregate_rating)
802 })?;
803 } else {
804 serialize_struct.skip_field("aggregateRating")?;
805 }
806 if !Vec::is_empty(&self.r#amenity_feature) {
807 serialize_struct.serialize_field("amenityFeature", {
808 struct SerializeWith<'a>(&'a Vec<AmenityFeatureProperty>);
809 impl<'a> Serialize for SerializeWith<'a> {
810 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
811 where
812 S: Serializer,
813 {
814 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
815 self.0, serializer,
816 )
817 }
818 }
819 &SerializeWith(&self.r#amenity_feature)
820 })?;
821 } else {
822 serialize_struct.skip_field("amenityFeature")?;
823 }
824 if !Vec::is_empty(&self.r#branch_code) {
825 serialize_struct.serialize_field("branchCode", {
826 struct SerializeWith<'a>(&'a Vec<BranchCodeProperty>);
827 impl<'a> Serialize for SerializeWith<'a> {
828 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
829 where
830 S: Serializer,
831 {
832 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
833 self.0, serializer,
834 )
835 }
836 }
837 &SerializeWith(&self.r#branch_code)
838 })?;
839 } else {
840 serialize_struct.skip_field("branchCode")?;
841 }
842 if !Vec::is_empty(&self.r#contained_in) {
843 serialize_struct.serialize_field("containedIn", {
844 struct SerializeWith<'a>(&'a Vec<ContainedInProperty>);
845 impl<'a> Serialize for SerializeWith<'a> {
846 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
847 where
848 S: Serializer,
849 {
850 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
851 self.0, serializer,
852 )
853 }
854 }
855 &SerializeWith(&self.r#contained_in)
856 })?;
857 } else {
858 serialize_struct.skip_field("containedIn")?;
859 }
860 if !Vec::is_empty(&self.r#contained_in_place) {
861 serialize_struct.serialize_field("containedInPlace", {
862 struct SerializeWith<'a>(&'a Vec<ContainedInPlaceProperty>);
863 impl<'a> Serialize for SerializeWith<'a> {
864 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
865 where
866 S: Serializer,
867 {
868 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
869 self.0, serializer,
870 )
871 }
872 }
873 &SerializeWith(&self.r#contained_in_place)
874 })?;
875 } else {
876 serialize_struct.skip_field("containedInPlace")?;
877 }
878 if !Vec::is_empty(&self.r#contains_place) {
879 serialize_struct.serialize_field("containsPlace", {
880 struct SerializeWith<'a>(&'a Vec<ContainsPlaceProperty>);
881 impl<'a> Serialize for SerializeWith<'a> {
882 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
883 where
884 S: Serializer,
885 {
886 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
887 self.0, serializer,
888 )
889 }
890 }
891 &SerializeWith(&self.r#contains_place)
892 })?;
893 } else {
894 serialize_struct.skip_field("containsPlace")?;
895 }
896 if !Vec::is_empty(&self.r#event) {
897 serialize_struct.serialize_field("event", {
898 struct SerializeWith<'a>(&'a Vec<EventProperty>);
899 impl<'a> Serialize for SerializeWith<'a> {
900 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
901 where
902 S: Serializer,
903 {
904 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
905 self.0, serializer,
906 )
907 }
908 }
909 &SerializeWith(&self.r#event)
910 })?;
911 } else {
912 serialize_struct.skip_field("event")?;
913 }
914 if !Vec::is_empty(&self.r#events) {
915 serialize_struct.serialize_field("events", {
916 struct SerializeWith<'a>(&'a Vec<EventsProperty>);
917 impl<'a> Serialize for SerializeWith<'a> {
918 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
919 where
920 S: Serializer,
921 {
922 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
923 self.0, serializer,
924 )
925 }
926 }
927 &SerializeWith(&self.r#events)
928 })?;
929 } else {
930 serialize_struct.skip_field("events")?;
931 }
932 if !Vec::is_empty(&self.r#fax_number) {
933 serialize_struct.serialize_field("faxNumber", {
934 struct SerializeWith<'a>(&'a Vec<FaxNumberProperty>);
935 impl<'a> Serialize for SerializeWith<'a> {
936 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
937 where
938 S: Serializer,
939 {
940 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
941 self.0, serializer,
942 )
943 }
944 }
945 &SerializeWith(&self.r#fax_number)
946 })?;
947 } else {
948 serialize_struct.skip_field("faxNumber")?;
949 }
950 if !Vec::is_empty(&self.r#geo) {
951 serialize_struct.serialize_field("geo", {
952 struct SerializeWith<'a>(&'a Vec<GeoProperty>);
953 impl<'a> Serialize for SerializeWith<'a> {
954 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
955 where
956 S: Serializer,
957 {
958 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
959 self.0, serializer,
960 )
961 }
962 }
963 &SerializeWith(&self.r#geo)
964 })?;
965 } else {
966 serialize_struct.skip_field("geo")?;
967 }
968 if !Vec::is_empty(&self.r#geo_contains) {
969 serialize_struct.serialize_field("geoContains", {
970 struct SerializeWith<'a>(&'a Vec<GeoContainsProperty>);
971 impl<'a> Serialize for SerializeWith<'a> {
972 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
973 where
974 S: Serializer,
975 {
976 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
977 self.0, serializer,
978 )
979 }
980 }
981 &SerializeWith(&self.r#geo_contains)
982 })?;
983 } else {
984 serialize_struct.skip_field("geoContains")?;
985 }
986 if !Vec::is_empty(&self.r#geo_covered_by) {
987 serialize_struct.serialize_field("geoCoveredBy", {
988 struct SerializeWith<'a>(&'a Vec<GeoCoveredByProperty>);
989 impl<'a> Serialize for SerializeWith<'a> {
990 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
991 where
992 S: Serializer,
993 {
994 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
995 self.0, serializer,
996 )
997 }
998 }
999 &SerializeWith(&self.r#geo_covered_by)
1000 })?;
1001 } else {
1002 serialize_struct.skip_field("geoCoveredBy")?;
1003 }
1004 if !Vec::is_empty(&self.r#geo_covers) {
1005 serialize_struct.serialize_field("geoCovers", {
1006 struct SerializeWith<'a>(&'a Vec<GeoCoversProperty>);
1007 impl<'a> Serialize for SerializeWith<'a> {
1008 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1009 where
1010 S: Serializer,
1011 {
1012 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1013 self.0, serializer,
1014 )
1015 }
1016 }
1017 &SerializeWith(&self.r#geo_covers)
1018 })?;
1019 } else {
1020 serialize_struct.skip_field("geoCovers")?;
1021 }
1022 if !Vec::is_empty(&self.r#geo_crosses) {
1023 serialize_struct.serialize_field("geoCrosses", {
1024 struct SerializeWith<'a>(&'a Vec<GeoCrossesProperty>);
1025 impl<'a> Serialize for SerializeWith<'a> {
1026 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1027 where
1028 S: Serializer,
1029 {
1030 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1031 self.0, serializer,
1032 )
1033 }
1034 }
1035 &SerializeWith(&self.r#geo_crosses)
1036 })?;
1037 } else {
1038 serialize_struct.skip_field("geoCrosses")?;
1039 }
1040 if !Vec::is_empty(&self.r#geo_disjoint) {
1041 serialize_struct.serialize_field("geoDisjoint", {
1042 struct SerializeWith<'a>(&'a Vec<GeoDisjointProperty>);
1043 impl<'a> Serialize for SerializeWith<'a> {
1044 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1045 where
1046 S: Serializer,
1047 {
1048 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1049 self.0, serializer,
1050 )
1051 }
1052 }
1053 &SerializeWith(&self.r#geo_disjoint)
1054 })?;
1055 } else {
1056 serialize_struct.skip_field("geoDisjoint")?;
1057 }
1058 if !Vec::is_empty(&self.r#geo_equals) {
1059 serialize_struct.serialize_field("geoEquals", {
1060 struct SerializeWith<'a>(&'a Vec<GeoEqualsProperty>);
1061 impl<'a> Serialize for SerializeWith<'a> {
1062 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1063 where
1064 S: Serializer,
1065 {
1066 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1067 self.0, serializer,
1068 )
1069 }
1070 }
1071 &SerializeWith(&self.r#geo_equals)
1072 })?;
1073 } else {
1074 serialize_struct.skip_field("geoEquals")?;
1075 }
1076 if !Vec::is_empty(&self.r#geo_intersects) {
1077 serialize_struct.serialize_field("geoIntersects", {
1078 struct SerializeWith<'a>(&'a Vec<GeoIntersectsProperty>);
1079 impl<'a> Serialize for SerializeWith<'a> {
1080 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1081 where
1082 S: Serializer,
1083 {
1084 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1085 self.0, serializer,
1086 )
1087 }
1088 }
1089 &SerializeWith(&self.r#geo_intersects)
1090 })?;
1091 } else {
1092 serialize_struct.skip_field("geoIntersects")?;
1093 }
1094 if !Vec::is_empty(&self.r#geo_overlaps) {
1095 serialize_struct.serialize_field("geoOverlaps", {
1096 struct SerializeWith<'a>(&'a Vec<GeoOverlapsProperty>);
1097 impl<'a> Serialize for SerializeWith<'a> {
1098 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1099 where
1100 S: Serializer,
1101 {
1102 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1103 self.0, serializer,
1104 )
1105 }
1106 }
1107 &SerializeWith(&self.r#geo_overlaps)
1108 })?;
1109 } else {
1110 serialize_struct.skip_field("geoOverlaps")?;
1111 }
1112 if !Vec::is_empty(&self.r#geo_touches) {
1113 serialize_struct.serialize_field("geoTouches", {
1114 struct SerializeWith<'a>(&'a Vec<GeoTouchesProperty>);
1115 impl<'a> Serialize for SerializeWith<'a> {
1116 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1117 where
1118 S: Serializer,
1119 {
1120 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1121 self.0, serializer,
1122 )
1123 }
1124 }
1125 &SerializeWith(&self.r#geo_touches)
1126 })?;
1127 } else {
1128 serialize_struct.skip_field("geoTouches")?;
1129 }
1130 if !Vec::is_empty(&self.r#geo_within) {
1131 serialize_struct.serialize_field("geoWithin", {
1132 struct SerializeWith<'a>(&'a Vec<GeoWithinProperty>);
1133 impl<'a> Serialize for SerializeWith<'a> {
1134 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1135 where
1136 S: Serializer,
1137 {
1138 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1139 self.0, serializer,
1140 )
1141 }
1142 }
1143 &SerializeWith(&self.r#geo_within)
1144 })?;
1145 } else {
1146 serialize_struct.skip_field("geoWithin")?;
1147 }
1148 if !Vec::is_empty(&self.r#global_location_number) {
1149 serialize_struct.serialize_field("globalLocationNumber", {
1150 struct SerializeWith<'a>(&'a Vec<GlobalLocationNumberProperty>);
1151 impl<'a> Serialize for SerializeWith<'a> {
1152 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1153 where
1154 S: Serializer,
1155 {
1156 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1157 self.0, serializer,
1158 )
1159 }
1160 }
1161 &SerializeWith(&self.r#global_location_number)
1162 })?;
1163 } else {
1164 serialize_struct.skip_field("globalLocationNumber")?;
1165 }
1166 if !Vec::is_empty(&self.r#has_drive_through_service) {
1167 serialize_struct.serialize_field("hasDriveThroughService", {
1168 struct SerializeWith<'a>(&'a Vec<HasDriveThroughServiceProperty>);
1169 impl<'a> Serialize for SerializeWith<'a> {
1170 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1171 where
1172 S: Serializer,
1173 {
1174 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1175 self.0, serializer,
1176 )
1177 }
1178 }
1179 &SerializeWith(&self.r#has_drive_through_service)
1180 })?;
1181 } else {
1182 serialize_struct.skip_field("hasDriveThroughService")?;
1183 }
1184 if !Vec::is_empty(&self.r#has_map) {
1185 serialize_struct.serialize_field("hasMap", {
1186 struct SerializeWith<'a>(&'a Vec<HasMapProperty>);
1187 impl<'a> Serialize for SerializeWith<'a> {
1188 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1189 where
1190 S: Serializer,
1191 {
1192 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1193 self.0, serializer,
1194 )
1195 }
1196 }
1197 &SerializeWith(&self.r#has_map)
1198 })?;
1199 } else {
1200 serialize_struct.skip_field("hasMap")?;
1201 }
1202 if !Vec::is_empty(&self.r#is_accessible_for_free) {
1203 serialize_struct.serialize_field("isAccessibleForFree", {
1204 struct SerializeWith<'a>(&'a Vec<IsAccessibleForFreeProperty>);
1205 impl<'a> Serialize for SerializeWith<'a> {
1206 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1207 where
1208 S: Serializer,
1209 {
1210 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1211 self.0, serializer,
1212 )
1213 }
1214 }
1215 &SerializeWith(&self.r#is_accessible_for_free)
1216 })?;
1217 } else {
1218 serialize_struct.skip_field("isAccessibleForFree")?;
1219 }
1220 if !Vec::is_empty(&self.r#isic_v_4) {
1221 serialize_struct.serialize_field("isicV4", {
1222 struct SerializeWith<'a>(&'a Vec<IsicV4Property>);
1223 impl<'a> Serialize for SerializeWith<'a> {
1224 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1225 where
1226 S: Serializer,
1227 {
1228 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1229 self.0, serializer,
1230 )
1231 }
1232 }
1233 &SerializeWith(&self.r#isic_v_4)
1234 })?;
1235 } else {
1236 serialize_struct.skip_field("isicV4")?;
1237 }
1238 if !Vec::is_empty(&self.r#keywords) {
1239 serialize_struct.serialize_field("keywords", {
1240 struct SerializeWith<'a>(&'a Vec<KeywordsProperty>);
1241 impl<'a> Serialize for SerializeWith<'a> {
1242 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1243 where
1244 S: Serializer,
1245 {
1246 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1247 self.0, serializer,
1248 )
1249 }
1250 }
1251 &SerializeWith(&self.r#keywords)
1252 })?;
1253 } else {
1254 serialize_struct.skip_field("keywords")?;
1255 }
1256 if !Vec::is_empty(&self.r#latitude) {
1257 serialize_struct.serialize_field("latitude", {
1258 struct SerializeWith<'a>(&'a Vec<LatitudeProperty>);
1259 impl<'a> Serialize for SerializeWith<'a> {
1260 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1261 where
1262 S: Serializer,
1263 {
1264 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1265 self.0, serializer,
1266 )
1267 }
1268 }
1269 &SerializeWith(&self.r#latitude)
1270 })?;
1271 } else {
1272 serialize_struct.skip_field("latitude")?;
1273 }
1274 if !Vec::is_empty(&self.r#logo) {
1275 serialize_struct.serialize_field("logo", {
1276 struct SerializeWith<'a>(&'a Vec<LogoProperty>);
1277 impl<'a> Serialize for SerializeWith<'a> {
1278 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1279 where
1280 S: Serializer,
1281 {
1282 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1283 self.0, serializer,
1284 )
1285 }
1286 }
1287 &SerializeWith(&self.r#logo)
1288 })?;
1289 } else {
1290 serialize_struct.skip_field("logo")?;
1291 }
1292 if !Vec::is_empty(&self.r#longitude) {
1293 serialize_struct.serialize_field("longitude", {
1294 struct SerializeWith<'a>(&'a Vec<LongitudeProperty>);
1295 impl<'a> Serialize for SerializeWith<'a> {
1296 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1297 where
1298 S: Serializer,
1299 {
1300 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1301 self.0, serializer,
1302 )
1303 }
1304 }
1305 &SerializeWith(&self.r#longitude)
1306 })?;
1307 } else {
1308 serialize_struct.skip_field("longitude")?;
1309 }
1310 if !Vec::is_empty(&self.r#map) {
1311 serialize_struct.serialize_field("map", {
1312 struct SerializeWith<'a>(&'a Vec<MapProperty>);
1313 impl<'a> Serialize for SerializeWith<'a> {
1314 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1315 where
1316 S: Serializer,
1317 {
1318 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1319 self.0, serializer,
1320 )
1321 }
1322 }
1323 &SerializeWith(&self.r#map)
1324 })?;
1325 } else {
1326 serialize_struct.skip_field("map")?;
1327 }
1328 if !Vec::is_empty(&self.r#maps) {
1329 serialize_struct.serialize_field("maps", {
1330 struct SerializeWith<'a>(&'a Vec<MapsProperty>);
1331 impl<'a> Serialize for SerializeWith<'a> {
1332 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1333 where
1334 S: Serializer,
1335 {
1336 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1337 self.0, serializer,
1338 )
1339 }
1340 }
1341 &SerializeWith(&self.r#maps)
1342 })?;
1343 } else {
1344 serialize_struct.skip_field("maps")?;
1345 }
1346 if !Vec::is_empty(&self.r#maximum_attendee_capacity) {
1347 serialize_struct.serialize_field("maximumAttendeeCapacity", {
1348 struct SerializeWith<'a>(&'a Vec<MaximumAttendeeCapacityProperty>);
1349 impl<'a> Serialize for SerializeWith<'a> {
1350 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1351 where
1352 S: Serializer,
1353 {
1354 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1355 self.0, serializer,
1356 )
1357 }
1358 }
1359 &SerializeWith(&self.r#maximum_attendee_capacity)
1360 })?;
1361 } else {
1362 serialize_struct.skip_field("maximumAttendeeCapacity")?;
1363 }
1364 if !Vec::is_empty(&self.r#opening_hours_specification) {
1365 serialize_struct.serialize_field("openingHoursSpecification", {
1366 struct SerializeWith<'a>(&'a Vec<OpeningHoursSpecificationProperty>);
1367 impl<'a> Serialize for SerializeWith<'a> {
1368 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1369 where
1370 S: Serializer,
1371 {
1372 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1373 self.0, serializer,
1374 )
1375 }
1376 }
1377 &SerializeWith(&self.r#opening_hours_specification)
1378 })?;
1379 } else {
1380 serialize_struct.skip_field("openingHoursSpecification")?;
1381 }
1382 if !Vec::is_empty(&self.r#photo) {
1383 serialize_struct.serialize_field("photo", {
1384 struct SerializeWith<'a>(&'a Vec<PhotoProperty>);
1385 impl<'a> Serialize for SerializeWith<'a> {
1386 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1387 where
1388 S: Serializer,
1389 {
1390 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1391 self.0, serializer,
1392 )
1393 }
1394 }
1395 &SerializeWith(&self.r#photo)
1396 })?;
1397 } else {
1398 serialize_struct.skip_field("photo")?;
1399 }
1400 if !Vec::is_empty(&self.r#photos) {
1401 serialize_struct.serialize_field("photos", {
1402 struct SerializeWith<'a>(&'a Vec<PhotosProperty>);
1403 impl<'a> Serialize for SerializeWith<'a> {
1404 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1405 where
1406 S: Serializer,
1407 {
1408 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1409 self.0, serializer,
1410 )
1411 }
1412 }
1413 &SerializeWith(&self.r#photos)
1414 })?;
1415 } else {
1416 serialize_struct.skip_field("photos")?;
1417 }
1418 if !Vec::is_empty(&self.r#public_access) {
1419 serialize_struct.serialize_field("publicAccess", {
1420 struct SerializeWith<'a>(&'a Vec<PublicAccessProperty>);
1421 impl<'a> Serialize for SerializeWith<'a> {
1422 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1423 where
1424 S: Serializer,
1425 {
1426 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1427 self.0, serializer,
1428 )
1429 }
1430 }
1431 &SerializeWith(&self.r#public_access)
1432 })?;
1433 } else {
1434 serialize_struct.skip_field("publicAccess")?;
1435 }
1436 if !Vec::is_empty(&self.r#review) {
1437 serialize_struct.serialize_field("review", {
1438 struct SerializeWith<'a>(&'a Vec<ReviewProperty>);
1439 impl<'a> Serialize for SerializeWith<'a> {
1440 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1441 where
1442 S: Serializer,
1443 {
1444 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1445 self.0, serializer,
1446 )
1447 }
1448 }
1449 &SerializeWith(&self.r#review)
1450 })?;
1451 } else {
1452 serialize_struct.skip_field("review")?;
1453 }
1454 if !Vec::is_empty(&self.r#reviews) {
1455 serialize_struct.serialize_field("reviews", {
1456 struct SerializeWith<'a>(&'a Vec<ReviewsProperty>);
1457 impl<'a> Serialize for SerializeWith<'a> {
1458 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1459 where
1460 S: Serializer,
1461 {
1462 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1463 self.0, serializer,
1464 )
1465 }
1466 }
1467 &SerializeWith(&self.r#reviews)
1468 })?;
1469 } else {
1470 serialize_struct.skip_field("reviews")?;
1471 }
1472 if !Vec::is_empty(&self.r#slogan) {
1473 serialize_struct.serialize_field("slogan", {
1474 struct SerializeWith<'a>(&'a Vec<SloganProperty>);
1475 impl<'a> Serialize for SerializeWith<'a> {
1476 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1477 where
1478 S: Serializer,
1479 {
1480 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1481 self.0, serializer,
1482 )
1483 }
1484 }
1485 &SerializeWith(&self.r#slogan)
1486 })?;
1487 } else {
1488 serialize_struct.skip_field("slogan")?;
1489 }
1490 if !Vec::is_empty(&self.r#smoking_allowed) {
1491 serialize_struct.serialize_field("smokingAllowed", {
1492 struct SerializeWith<'a>(&'a Vec<SmokingAllowedProperty>);
1493 impl<'a> Serialize for SerializeWith<'a> {
1494 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1495 where
1496 S: Serializer,
1497 {
1498 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1499 self.0, serializer,
1500 )
1501 }
1502 }
1503 &SerializeWith(&self.r#smoking_allowed)
1504 })?;
1505 } else {
1506 serialize_struct.skip_field("smokingAllowed")?;
1507 }
1508 if !Vec::is_empty(&self.r#special_opening_hours_specification) {
1509 serialize_struct.serialize_field("specialOpeningHoursSpecification", {
1510 struct SerializeWith<'a>(&'a Vec<SpecialOpeningHoursSpecificationProperty>);
1511 impl<'a> Serialize for SerializeWith<'a> {
1512 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1513 where
1514 S: Serializer,
1515 {
1516 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1517 self.0, serializer,
1518 )
1519 }
1520 }
1521 &SerializeWith(&self.r#special_opening_hours_specification)
1522 })?;
1523 } else {
1524 serialize_struct.skip_field("specialOpeningHoursSpecification")?;
1525 }
1526 if !Vec::is_empty(&self.r#telephone) {
1527 serialize_struct.serialize_field("telephone", {
1528 struct SerializeWith<'a>(&'a Vec<TelephoneProperty>);
1529 impl<'a> Serialize for SerializeWith<'a> {
1530 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1531 where
1532 S: Serializer,
1533 {
1534 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1535 self.0, serializer,
1536 )
1537 }
1538 }
1539 &SerializeWith(&self.r#telephone)
1540 })?;
1541 } else {
1542 serialize_struct.skip_field("telephone")?;
1543 }
1544 if !Vec::is_empty(&self.r#tour_booking_page) {
1545 serialize_struct.serialize_field("tourBookingPage", {
1546 struct SerializeWith<'a>(&'a Vec<TourBookingPageProperty>);
1547 impl<'a> Serialize for SerializeWith<'a> {
1548 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1549 where
1550 S: Serializer,
1551 {
1552 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1553 self.0, serializer,
1554 )
1555 }
1556 }
1557 &SerializeWith(&self.r#tour_booking_page)
1558 })?;
1559 } else {
1560 serialize_struct.skip_field("tourBookingPage")?;
1561 }
1562 if !Vec::is_empty(&self.r#additional_type) {
1563 serialize_struct.serialize_field("additionalType", {
1564 struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
1565 impl<'a> Serialize for SerializeWith<'a> {
1566 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1567 where
1568 S: Serializer,
1569 {
1570 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1571 self.0, serializer,
1572 )
1573 }
1574 }
1575 &SerializeWith(&self.r#additional_type)
1576 })?;
1577 } else {
1578 serialize_struct.skip_field("additionalType")?;
1579 }
1580 if !Vec::is_empty(&self.r#alternate_name) {
1581 serialize_struct.serialize_field("alternateName", {
1582 struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
1583 impl<'a> Serialize for SerializeWith<'a> {
1584 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1585 where
1586 S: Serializer,
1587 {
1588 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1589 self.0, serializer,
1590 )
1591 }
1592 }
1593 &SerializeWith(&self.r#alternate_name)
1594 })?;
1595 } else {
1596 serialize_struct.skip_field("alternateName")?;
1597 }
1598 if !Vec::is_empty(&self.r#description) {
1599 serialize_struct.serialize_field("description", {
1600 struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
1601 impl<'a> Serialize for SerializeWith<'a> {
1602 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1603 where
1604 S: Serializer,
1605 {
1606 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1607 self.0, serializer,
1608 )
1609 }
1610 }
1611 &SerializeWith(&self.r#description)
1612 })?;
1613 } else {
1614 serialize_struct.skip_field("description")?;
1615 }
1616 if !Vec::is_empty(&self.r#disambiguating_description) {
1617 serialize_struct.serialize_field("disambiguatingDescription", {
1618 struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
1619 impl<'a> Serialize for SerializeWith<'a> {
1620 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1621 where
1622 S: Serializer,
1623 {
1624 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1625 self.0, serializer,
1626 )
1627 }
1628 }
1629 &SerializeWith(&self.r#disambiguating_description)
1630 })?;
1631 } else {
1632 serialize_struct.skip_field("disambiguatingDescription")?;
1633 }
1634 if !Vec::is_empty(&self.r#identifier) {
1635 serialize_struct.serialize_field("identifier", {
1636 struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
1637 impl<'a> Serialize for SerializeWith<'a> {
1638 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1639 where
1640 S: Serializer,
1641 {
1642 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1643 self.0, serializer,
1644 )
1645 }
1646 }
1647 &SerializeWith(&self.r#identifier)
1648 })?;
1649 } else {
1650 serialize_struct.skip_field("identifier")?;
1651 }
1652 if !Vec::is_empty(&self.r#image) {
1653 serialize_struct.serialize_field("image", {
1654 struct SerializeWith<'a>(&'a Vec<ImageProperty>);
1655 impl<'a> Serialize for SerializeWith<'a> {
1656 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1657 where
1658 S: Serializer,
1659 {
1660 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1661 self.0, serializer,
1662 )
1663 }
1664 }
1665 &SerializeWith(&self.r#image)
1666 })?;
1667 } else {
1668 serialize_struct.skip_field("image")?;
1669 }
1670 if !Vec::is_empty(&self.r#main_entity_of_page) {
1671 serialize_struct.serialize_field("mainEntityOfPage", {
1672 struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
1673 impl<'a> Serialize for SerializeWith<'a> {
1674 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1675 where
1676 S: Serializer,
1677 {
1678 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1679 self.0, serializer,
1680 )
1681 }
1682 }
1683 &SerializeWith(&self.r#main_entity_of_page)
1684 })?;
1685 } else {
1686 serialize_struct.skip_field("mainEntityOfPage")?;
1687 }
1688 if !Vec::is_empty(&self.r#name) {
1689 serialize_struct.serialize_field("name", {
1690 struct SerializeWith<'a>(&'a Vec<NameProperty>);
1691 impl<'a> Serialize for SerializeWith<'a> {
1692 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1693 where
1694 S: Serializer,
1695 {
1696 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1697 self.0, serializer,
1698 )
1699 }
1700 }
1701 &SerializeWith(&self.r#name)
1702 })?;
1703 } else {
1704 serialize_struct.skip_field("name")?;
1705 }
1706 if !Vec::is_empty(&self.r#potential_action) {
1707 serialize_struct.serialize_field("potentialAction", {
1708 struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
1709 impl<'a> Serialize for SerializeWith<'a> {
1710 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1711 where
1712 S: Serializer,
1713 {
1714 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1715 self.0, serializer,
1716 )
1717 }
1718 }
1719 &SerializeWith(&self.r#potential_action)
1720 })?;
1721 } else {
1722 serialize_struct.skip_field("potentialAction")?;
1723 }
1724 if !Vec::is_empty(&self.r#same_as) {
1725 serialize_struct.serialize_field("sameAs", {
1726 struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
1727 impl<'a> Serialize for SerializeWith<'a> {
1728 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1729 where
1730 S: Serializer,
1731 {
1732 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1733 self.0, serializer,
1734 )
1735 }
1736 }
1737 &SerializeWith(&self.r#same_as)
1738 })?;
1739 } else {
1740 serialize_struct.skip_field("sameAs")?;
1741 }
1742 if !Vec::is_empty(&self.r#subject_of) {
1743 serialize_struct.serialize_field("subjectOf", {
1744 struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
1745 impl<'a> Serialize for SerializeWith<'a> {
1746 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1747 where
1748 S: Serializer,
1749 {
1750 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1751 self.0, serializer,
1752 )
1753 }
1754 }
1755 &SerializeWith(&self.r#subject_of)
1756 })?;
1757 } else {
1758 serialize_struct.skip_field("subjectOf")?;
1759 }
1760 if !Vec::is_empty(&self.r#url) {
1761 serialize_struct.serialize_field("url", {
1762 struct SerializeWith<'a>(&'a Vec<UrlProperty>);
1763 impl<'a> Serialize for SerializeWith<'a> {
1764 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1765 where
1766 S: Serializer,
1767 {
1768 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1769 self.0, serializer,
1770 )
1771 }
1772 }
1773 &SerializeWith(&self.r#url)
1774 })?;
1775 } else {
1776 serialize_struct.skip_field("url")?;
1777 }
1778 serialize_struct.end()
1779 }
1780 }
1781 impl<'de> Deserialize<'de> for Place {
1782 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1783 where
1784 D: Deserializer<'de>,
1785 {
1786 enum Field {
1787 AdditionalProperty,
1788 Address,
1789 AggregateRating,
1790 AmenityFeature,
1791 BranchCode,
1792 ContainedIn,
1793 ContainedInPlace,
1794 ContainsPlace,
1795 Event,
1796 Events,
1797 FaxNumber,
1798 Geo,
1799 GeoContains,
1800 GeoCoveredBy,
1801 GeoCovers,
1802 GeoCrosses,
1803 GeoDisjoint,
1804 GeoEquals,
1805 GeoIntersects,
1806 GeoOverlaps,
1807 GeoTouches,
1808 GeoWithin,
1809 GlobalLocationNumber,
1810 HasDriveThroughService,
1811 HasMap,
1812 IsAccessibleForFree,
1813 IsicV4,
1814 Keywords,
1815 Latitude,
1816 Logo,
1817 Longitude,
1818 Map,
1819 Maps,
1820 MaximumAttendeeCapacity,
1821 OpeningHoursSpecification,
1822 Photo,
1823 Photos,
1824 PublicAccess,
1825 Review,
1826 Reviews,
1827 Slogan,
1828 SmokingAllowed,
1829 SpecialOpeningHoursSpecification,
1830 Telephone,
1831 TourBookingPage,
1832 AdditionalType,
1833 AlternateName,
1834 Description,
1835 DisambiguatingDescription,
1836 Identifier,
1837 Image,
1838 MainEntityOfPage,
1839 Name,
1840 PotentialAction,
1841 SameAs,
1842 SubjectOf,
1843 Url,
1844 Ignore,
1845 }
1846 struct FieldVisitor;
1847 impl<'de> Visitor<'de> for FieldVisitor {
1848 type Value = Field;
1849 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1850 formatter.write_str("field identifier")
1851 }
1852 fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1853 where
1854 E: de::Error,
1855 {
1856 match value {
1857 "additionalProperty" => Ok(Field::AdditionalProperty),
1858 "address" => Ok(Field::Address),
1859 "aggregateRating" => Ok(Field::AggregateRating),
1860 "amenityFeature" => Ok(Field::AmenityFeature),
1861 "branchCode" => Ok(Field::BranchCode),
1862 "containedIn" => Ok(Field::ContainedIn),
1863 "containedInPlace" => Ok(Field::ContainedInPlace),
1864 "containsPlace" => Ok(Field::ContainsPlace),
1865 "event" => Ok(Field::Event),
1866 "events" => Ok(Field::Events),
1867 "faxNumber" => Ok(Field::FaxNumber),
1868 "geo" => Ok(Field::Geo),
1869 "geoContains" => Ok(Field::GeoContains),
1870 "geoCoveredBy" => Ok(Field::GeoCoveredBy),
1871 "geoCovers" => Ok(Field::GeoCovers),
1872 "geoCrosses" => Ok(Field::GeoCrosses),
1873 "geoDisjoint" => Ok(Field::GeoDisjoint),
1874 "geoEquals" => Ok(Field::GeoEquals),
1875 "geoIntersects" => Ok(Field::GeoIntersects),
1876 "geoOverlaps" => Ok(Field::GeoOverlaps),
1877 "geoTouches" => Ok(Field::GeoTouches),
1878 "geoWithin" => Ok(Field::GeoWithin),
1879 "globalLocationNumber" => Ok(Field::GlobalLocationNumber),
1880 "hasDriveThroughService" => Ok(Field::HasDriveThroughService),
1881 "hasMap" => Ok(Field::HasMap),
1882 "isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
1883 "isicV4" => Ok(Field::IsicV4),
1884 "keywords" => Ok(Field::Keywords),
1885 "latitude" => Ok(Field::Latitude),
1886 "logo" => Ok(Field::Logo),
1887 "longitude" => Ok(Field::Longitude),
1888 "map" => Ok(Field::Map),
1889 "maps" => Ok(Field::Maps),
1890 "maximumAttendeeCapacity" => Ok(Field::MaximumAttendeeCapacity),
1891 "openingHoursSpecification" => Ok(Field::OpeningHoursSpecification),
1892 "photo" => Ok(Field::Photo),
1893 "photos" => Ok(Field::Photos),
1894 "publicAccess" => Ok(Field::PublicAccess),
1895 "review" => Ok(Field::Review),
1896 "reviews" => Ok(Field::Reviews),
1897 "slogan" => Ok(Field::Slogan),
1898 "smokingAllowed" => Ok(Field::SmokingAllowed),
1899 "specialOpeningHoursSpecification" => {
1900 Ok(Field::SpecialOpeningHoursSpecification)
1901 }
1902 "telephone" => Ok(Field::Telephone),
1903 "tourBookingPage" => Ok(Field::TourBookingPage),
1904 "additionalType" => Ok(Field::AdditionalType),
1905 "alternateName" => Ok(Field::AlternateName),
1906 "description" => Ok(Field::Description),
1907 "disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1908 "identifier" => Ok(Field::Identifier),
1909 "image" => Ok(Field::Image),
1910 "mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1911 "name" => Ok(Field::Name),
1912 "potentialAction" => Ok(Field::PotentialAction),
1913 "sameAs" => Ok(Field::SameAs),
1914 "subjectOf" => Ok(Field::SubjectOf),
1915 "url" => Ok(Field::Url),
1916 "id" | "type" => Ok(Field::Ignore),
1917 _ => Err(de::Error::unknown_field(value, FIELDS)),
1918 }
1919 }
1920 fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
1921 where
1922 E: de::Error,
1923 {
1924 match value {
1925 b"additionalProperty" => Ok(Field::AdditionalProperty),
1926 b"address" => Ok(Field::Address),
1927 b"aggregateRating" => Ok(Field::AggregateRating),
1928 b"amenityFeature" => Ok(Field::AmenityFeature),
1929 b"branchCode" => Ok(Field::BranchCode),
1930 b"containedIn" => Ok(Field::ContainedIn),
1931 b"containedInPlace" => Ok(Field::ContainedInPlace),
1932 b"containsPlace" => Ok(Field::ContainsPlace),
1933 b"event" => Ok(Field::Event),
1934 b"events" => Ok(Field::Events),
1935 b"faxNumber" => Ok(Field::FaxNumber),
1936 b"geo" => Ok(Field::Geo),
1937 b"geoContains" => Ok(Field::GeoContains),
1938 b"geoCoveredBy" => Ok(Field::GeoCoveredBy),
1939 b"geoCovers" => Ok(Field::GeoCovers),
1940 b"geoCrosses" => Ok(Field::GeoCrosses),
1941 b"geoDisjoint" => Ok(Field::GeoDisjoint),
1942 b"geoEquals" => Ok(Field::GeoEquals),
1943 b"geoIntersects" => Ok(Field::GeoIntersects),
1944 b"geoOverlaps" => Ok(Field::GeoOverlaps),
1945 b"geoTouches" => Ok(Field::GeoTouches),
1946 b"geoWithin" => Ok(Field::GeoWithin),
1947 b"globalLocationNumber" => Ok(Field::GlobalLocationNumber),
1948 b"hasDriveThroughService" => Ok(Field::HasDriveThroughService),
1949 b"hasMap" => Ok(Field::HasMap),
1950 b"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
1951 b"isicV4" => Ok(Field::IsicV4),
1952 b"keywords" => Ok(Field::Keywords),
1953 b"latitude" => Ok(Field::Latitude),
1954 b"logo" => Ok(Field::Logo),
1955 b"longitude" => Ok(Field::Longitude),
1956 b"map" => Ok(Field::Map),
1957 b"maps" => Ok(Field::Maps),
1958 b"maximumAttendeeCapacity" => Ok(Field::MaximumAttendeeCapacity),
1959 b"openingHoursSpecification" => Ok(Field::OpeningHoursSpecification),
1960 b"photo" => Ok(Field::Photo),
1961 b"photos" => Ok(Field::Photos),
1962 b"publicAccess" => Ok(Field::PublicAccess),
1963 b"review" => Ok(Field::Review),
1964 b"reviews" => Ok(Field::Reviews),
1965 b"slogan" => Ok(Field::Slogan),
1966 b"smokingAllowed" => Ok(Field::SmokingAllowed),
1967 b"specialOpeningHoursSpecification" => {
1968 Ok(Field::SpecialOpeningHoursSpecification)
1969 }
1970 b"telephone" => Ok(Field::Telephone),
1971 b"tourBookingPage" => Ok(Field::TourBookingPage),
1972 b"additionalType" => Ok(Field::AdditionalType),
1973 b"alternateName" => Ok(Field::AlternateName),
1974 b"description" => Ok(Field::Description),
1975 b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1976 b"identifier" => Ok(Field::Identifier),
1977 b"image" => Ok(Field::Image),
1978 b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1979 b"name" => Ok(Field::Name),
1980 b"potentialAction" => Ok(Field::PotentialAction),
1981 b"sameAs" => Ok(Field::SameAs),
1982 b"subjectOf" => Ok(Field::SubjectOf),
1983 b"url" => Ok(Field::Url),
1984 b"id" | b"type" => Ok(Field::Ignore),
1985 _ => {
1986 let value = &String::from_utf8_lossy(value);
1987 Err(de::Error::unknown_field(value, FIELDS))
1988 }
1989 }
1990 }
1991 }
1992 impl<'de> Deserialize<'de> for Field {
1993 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1994 where
1995 D: Deserializer<'de>,
1996 {
1997 deserializer.deserialize_identifier(FieldVisitor)
1998 }
1999 }
2000 struct ClassVisitor;
2001 impl<'de> Visitor<'de> for ClassVisitor {
2002 type Value = Place;
2003 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
2004 formatter.write_str("schema.org schema Place")
2005 }
2006 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
2007 where
2008 A: de::MapAccess<'de>,
2009 {
2010 let mut r#additional_property_property = None;
2011 let mut r#address_property = None;
2012 let mut r#aggregate_rating_property = None;
2013 let mut r#amenity_feature_property = None;
2014 let mut r#branch_code_property = None;
2015 let mut r#contained_in_property = None;
2016 let mut r#contained_in_place_property = None;
2017 let mut r#contains_place_property = None;
2018 let mut r#event_property = None;
2019 let mut r#events_property = None;
2020 let mut r#fax_number_property = None;
2021 let mut r#geo_property = None;
2022 let mut r#geo_contains_property = None;
2023 let mut r#geo_covered_by_property = None;
2024 let mut r#geo_covers_property = None;
2025 let mut r#geo_crosses_property = None;
2026 let mut r#geo_disjoint_property = None;
2027 let mut r#geo_equals_property = None;
2028 let mut r#geo_intersects_property = None;
2029 let mut r#geo_overlaps_property = None;
2030 let mut r#geo_touches_property = None;
2031 let mut r#geo_within_property = None;
2032 let mut r#global_location_number_property = None;
2033 let mut r#has_drive_through_service_property = None;
2034 let mut r#has_map_property = None;
2035 let mut r#is_accessible_for_free_property = None;
2036 let mut r#isic_v_4_property = None;
2037 let mut r#keywords_property = None;
2038 let mut r#latitude_property = None;
2039 let mut r#logo_property = None;
2040 let mut r#longitude_property = None;
2041 let mut r#map_property = None;
2042 let mut r#maps_property = None;
2043 let mut r#maximum_attendee_capacity_property = None;
2044 let mut r#opening_hours_specification_property = None;
2045 let mut r#photo_property = None;
2046 let mut r#photos_property = None;
2047 let mut r#public_access_property = None;
2048 let mut r#review_property = None;
2049 let mut r#reviews_property = None;
2050 let mut r#slogan_property = None;
2051 let mut r#smoking_allowed_property = None;
2052 let mut r#special_opening_hours_specification_property = None;
2053 let mut r#telephone_property = None;
2054 let mut r#tour_booking_page_property = None;
2055 let mut r#additional_type_property = None;
2056 let mut r#alternate_name_property = None;
2057 let mut r#description_property = None;
2058 let mut r#disambiguating_description_property = None;
2059 let mut r#identifier_property = None;
2060 let mut r#image_property = None;
2061 let mut r#main_entity_of_page_property = None;
2062 let mut r#name_property = None;
2063 let mut r#potential_action_property = None;
2064 let mut r#same_as_property = None;
2065 let mut r#subject_of_property = None;
2066 let mut r#url_property = None;
2067 while let Some(key) = map.next_key::<Field>()? {
2068 match key {
2069 Field::AdditionalProperty => {
2070 if r#additional_property_property.is_some() {
2071 return Err(<A::Error as de::Error>::duplicate_field(
2072 "additionalProperty",
2073 ));
2074 }
2075 r#additional_property_property = Some({
2076 struct DeserializeWith(Vec<AdditionalPropertyProperty>);
2077 impl<'de> Deserialize<'de> for DeserializeWith {
2078 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2079 where
2080 D: Deserializer<'de>,
2081 {
2082 Ok(DeserializeWith(serde_with::As::<
2083 serde_with::OneOrMany<serde_with::Same>,
2084 >::deserialize(deserializer)?))
2085 }
2086 }
2087 match map.next_value::<DeserializeWith>() {
2088 Ok(deserialize_with) => deserialize_with.0,
2089 Err(err) => {
2090 return Err(err);
2091 }
2092 }
2093 });
2094 }
2095 Field::Address => {
2096 if r#address_property.is_some() {
2097 return Err(<A::Error as de::Error>::duplicate_field(
2098 "address",
2099 ));
2100 }
2101 r#address_property = Some({
2102 struct DeserializeWith(Vec<AddressProperty>);
2103 impl<'de> Deserialize<'de> for DeserializeWith {
2104 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2105 where
2106 D: Deserializer<'de>,
2107 {
2108 Ok(DeserializeWith(serde_with::As::<
2109 serde_with::OneOrMany<serde_with::Same>,
2110 >::deserialize(deserializer)?))
2111 }
2112 }
2113 match map.next_value::<DeserializeWith>() {
2114 Ok(deserialize_with) => deserialize_with.0,
2115 Err(err) => {
2116 return Err(err);
2117 }
2118 }
2119 });
2120 }
2121 Field::AggregateRating => {
2122 if r#aggregate_rating_property.is_some() {
2123 return Err(<A::Error as de::Error>::duplicate_field(
2124 "aggregateRating",
2125 ));
2126 }
2127 r#aggregate_rating_property = Some({
2128 struct DeserializeWith(Vec<AggregateRatingProperty>);
2129 impl<'de> Deserialize<'de> for DeserializeWith {
2130 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2131 where
2132 D: Deserializer<'de>,
2133 {
2134 Ok(DeserializeWith(serde_with::As::<
2135 serde_with::OneOrMany<serde_with::Same>,
2136 >::deserialize(deserializer)?))
2137 }
2138 }
2139 match map.next_value::<DeserializeWith>() {
2140 Ok(deserialize_with) => deserialize_with.0,
2141 Err(err) => {
2142 return Err(err);
2143 }
2144 }
2145 });
2146 }
2147 Field::AmenityFeature => {
2148 if r#amenity_feature_property.is_some() {
2149 return Err(<A::Error as de::Error>::duplicate_field(
2150 "amenityFeature",
2151 ));
2152 }
2153 r#amenity_feature_property = Some({
2154 struct DeserializeWith(Vec<AmenityFeatureProperty>);
2155 impl<'de> Deserialize<'de> for DeserializeWith {
2156 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2157 where
2158 D: Deserializer<'de>,
2159 {
2160 Ok(DeserializeWith(serde_with::As::<
2161 serde_with::OneOrMany<serde_with::Same>,
2162 >::deserialize(deserializer)?))
2163 }
2164 }
2165 match map.next_value::<DeserializeWith>() {
2166 Ok(deserialize_with) => deserialize_with.0,
2167 Err(err) => {
2168 return Err(err);
2169 }
2170 }
2171 });
2172 }
2173 Field::BranchCode => {
2174 if r#branch_code_property.is_some() {
2175 return Err(<A::Error as de::Error>::duplicate_field(
2176 "branchCode",
2177 ));
2178 }
2179 r#branch_code_property = Some({
2180 struct DeserializeWith(Vec<BranchCodeProperty>);
2181 impl<'de> Deserialize<'de> for DeserializeWith {
2182 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2183 where
2184 D: Deserializer<'de>,
2185 {
2186 Ok(DeserializeWith(serde_with::As::<
2187 serde_with::OneOrMany<serde_with::Same>,
2188 >::deserialize(deserializer)?))
2189 }
2190 }
2191 match map.next_value::<DeserializeWith>() {
2192 Ok(deserialize_with) => deserialize_with.0,
2193 Err(err) => {
2194 return Err(err);
2195 }
2196 }
2197 });
2198 }
2199 Field::ContainedIn => {
2200 if r#contained_in_property.is_some() {
2201 return Err(<A::Error as de::Error>::duplicate_field(
2202 "containedIn",
2203 ));
2204 }
2205 r#contained_in_property = Some({
2206 struct DeserializeWith(Vec<ContainedInProperty>);
2207 impl<'de> Deserialize<'de> for DeserializeWith {
2208 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2209 where
2210 D: Deserializer<'de>,
2211 {
2212 Ok(DeserializeWith(serde_with::As::<
2213 serde_with::OneOrMany<serde_with::Same>,
2214 >::deserialize(deserializer)?))
2215 }
2216 }
2217 match map.next_value::<DeserializeWith>() {
2218 Ok(deserialize_with) => deserialize_with.0,
2219 Err(err) => {
2220 return Err(err);
2221 }
2222 }
2223 });
2224 }
2225 Field::ContainedInPlace => {
2226 if r#contained_in_place_property.is_some() {
2227 return Err(<A::Error as de::Error>::duplicate_field(
2228 "containedInPlace",
2229 ));
2230 }
2231 r#contained_in_place_property = Some({
2232 struct DeserializeWith(Vec<ContainedInPlaceProperty>);
2233 impl<'de> Deserialize<'de> for DeserializeWith {
2234 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2235 where
2236 D: Deserializer<'de>,
2237 {
2238 Ok(DeserializeWith(serde_with::As::<
2239 serde_with::OneOrMany<serde_with::Same>,
2240 >::deserialize(deserializer)?))
2241 }
2242 }
2243 match map.next_value::<DeserializeWith>() {
2244 Ok(deserialize_with) => deserialize_with.0,
2245 Err(err) => {
2246 return Err(err);
2247 }
2248 }
2249 });
2250 }
2251 Field::ContainsPlace => {
2252 if r#contains_place_property.is_some() {
2253 return Err(<A::Error as de::Error>::duplicate_field(
2254 "containsPlace",
2255 ));
2256 }
2257 r#contains_place_property = Some({
2258 struct DeserializeWith(Vec<ContainsPlaceProperty>);
2259 impl<'de> Deserialize<'de> for DeserializeWith {
2260 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2261 where
2262 D: Deserializer<'de>,
2263 {
2264 Ok(DeserializeWith(serde_with::As::<
2265 serde_with::OneOrMany<serde_with::Same>,
2266 >::deserialize(deserializer)?))
2267 }
2268 }
2269 match map.next_value::<DeserializeWith>() {
2270 Ok(deserialize_with) => deserialize_with.0,
2271 Err(err) => {
2272 return Err(err);
2273 }
2274 }
2275 });
2276 }
2277 Field::Event => {
2278 if r#event_property.is_some() {
2279 return Err(<A::Error as de::Error>::duplicate_field("event"));
2280 }
2281 r#event_property = Some({
2282 struct DeserializeWith(Vec<EventProperty>);
2283 impl<'de> Deserialize<'de> for DeserializeWith {
2284 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2285 where
2286 D: Deserializer<'de>,
2287 {
2288 Ok(DeserializeWith(serde_with::As::<
2289 serde_with::OneOrMany<serde_with::Same>,
2290 >::deserialize(deserializer)?))
2291 }
2292 }
2293 match map.next_value::<DeserializeWith>() {
2294 Ok(deserialize_with) => deserialize_with.0,
2295 Err(err) => {
2296 return Err(err);
2297 }
2298 }
2299 });
2300 }
2301 Field::Events => {
2302 if r#events_property.is_some() {
2303 return Err(<A::Error as de::Error>::duplicate_field("events"));
2304 }
2305 r#events_property = Some({
2306 struct DeserializeWith(Vec<EventsProperty>);
2307 impl<'de> Deserialize<'de> for DeserializeWith {
2308 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2309 where
2310 D: Deserializer<'de>,
2311 {
2312 Ok(DeserializeWith(serde_with::As::<
2313 serde_with::OneOrMany<serde_with::Same>,
2314 >::deserialize(deserializer)?))
2315 }
2316 }
2317 match map.next_value::<DeserializeWith>() {
2318 Ok(deserialize_with) => deserialize_with.0,
2319 Err(err) => {
2320 return Err(err);
2321 }
2322 }
2323 });
2324 }
2325 Field::FaxNumber => {
2326 if r#fax_number_property.is_some() {
2327 return Err(<A::Error as de::Error>::duplicate_field(
2328 "faxNumber",
2329 ));
2330 }
2331 r#fax_number_property = Some({
2332 struct DeserializeWith(Vec<FaxNumberProperty>);
2333 impl<'de> Deserialize<'de> for DeserializeWith {
2334 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2335 where
2336 D: Deserializer<'de>,
2337 {
2338 Ok(DeserializeWith(serde_with::As::<
2339 serde_with::OneOrMany<serde_with::Same>,
2340 >::deserialize(deserializer)?))
2341 }
2342 }
2343 match map.next_value::<DeserializeWith>() {
2344 Ok(deserialize_with) => deserialize_with.0,
2345 Err(err) => {
2346 return Err(err);
2347 }
2348 }
2349 });
2350 }
2351 Field::Geo => {
2352 if r#geo_property.is_some() {
2353 return Err(<A::Error as de::Error>::duplicate_field("geo"));
2354 }
2355 r#geo_property = Some({
2356 struct DeserializeWith(Vec<GeoProperty>);
2357 impl<'de> Deserialize<'de> for DeserializeWith {
2358 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2359 where
2360 D: Deserializer<'de>,
2361 {
2362 Ok(DeserializeWith(serde_with::As::<
2363 serde_with::OneOrMany<serde_with::Same>,
2364 >::deserialize(deserializer)?))
2365 }
2366 }
2367 match map.next_value::<DeserializeWith>() {
2368 Ok(deserialize_with) => deserialize_with.0,
2369 Err(err) => {
2370 return Err(err);
2371 }
2372 }
2373 });
2374 }
2375 Field::GeoContains => {
2376 if r#geo_contains_property.is_some() {
2377 return Err(<A::Error as de::Error>::duplicate_field(
2378 "geoContains",
2379 ));
2380 }
2381 r#geo_contains_property = Some({
2382 struct DeserializeWith(Vec<GeoContainsProperty>);
2383 impl<'de> Deserialize<'de> for DeserializeWith {
2384 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2385 where
2386 D: Deserializer<'de>,
2387 {
2388 Ok(DeserializeWith(serde_with::As::<
2389 serde_with::OneOrMany<serde_with::Same>,
2390 >::deserialize(deserializer)?))
2391 }
2392 }
2393 match map.next_value::<DeserializeWith>() {
2394 Ok(deserialize_with) => deserialize_with.0,
2395 Err(err) => {
2396 return Err(err);
2397 }
2398 }
2399 });
2400 }
2401 Field::GeoCoveredBy => {
2402 if r#geo_covered_by_property.is_some() {
2403 return Err(<A::Error as de::Error>::duplicate_field(
2404 "geoCoveredBy",
2405 ));
2406 }
2407 r#geo_covered_by_property = Some({
2408 struct DeserializeWith(Vec<GeoCoveredByProperty>);
2409 impl<'de> Deserialize<'de> for DeserializeWith {
2410 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2411 where
2412 D: Deserializer<'de>,
2413 {
2414 Ok(DeserializeWith(serde_with::As::<
2415 serde_with::OneOrMany<serde_with::Same>,
2416 >::deserialize(deserializer)?))
2417 }
2418 }
2419 match map.next_value::<DeserializeWith>() {
2420 Ok(deserialize_with) => deserialize_with.0,
2421 Err(err) => {
2422 return Err(err);
2423 }
2424 }
2425 });
2426 }
2427 Field::GeoCovers => {
2428 if r#geo_covers_property.is_some() {
2429 return Err(<A::Error as de::Error>::duplicate_field(
2430 "geoCovers",
2431 ));
2432 }
2433 r#geo_covers_property = Some({
2434 struct DeserializeWith(Vec<GeoCoversProperty>);
2435 impl<'de> Deserialize<'de> for DeserializeWith {
2436 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2437 where
2438 D: Deserializer<'de>,
2439 {
2440 Ok(DeserializeWith(serde_with::As::<
2441 serde_with::OneOrMany<serde_with::Same>,
2442 >::deserialize(deserializer)?))
2443 }
2444 }
2445 match map.next_value::<DeserializeWith>() {
2446 Ok(deserialize_with) => deserialize_with.0,
2447 Err(err) => {
2448 return Err(err);
2449 }
2450 }
2451 });
2452 }
2453 Field::GeoCrosses => {
2454 if r#geo_crosses_property.is_some() {
2455 return Err(<A::Error as de::Error>::duplicate_field(
2456 "geoCrosses",
2457 ));
2458 }
2459 r#geo_crosses_property = Some({
2460 struct DeserializeWith(Vec<GeoCrossesProperty>);
2461 impl<'de> Deserialize<'de> for DeserializeWith {
2462 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2463 where
2464 D: Deserializer<'de>,
2465 {
2466 Ok(DeserializeWith(serde_with::As::<
2467 serde_with::OneOrMany<serde_with::Same>,
2468 >::deserialize(deserializer)?))
2469 }
2470 }
2471 match map.next_value::<DeserializeWith>() {
2472 Ok(deserialize_with) => deserialize_with.0,
2473 Err(err) => {
2474 return Err(err);
2475 }
2476 }
2477 });
2478 }
2479 Field::GeoDisjoint => {
2480 if r#geo_disjoint_property.is_some() {
2481 return Err(<A::Error as de::Error>::duplicate_field(
2482 "geoDisjoint",
2483 ));
2484 }
2485 r#geo_disjoint_property = Some({
2486 struct DeserializeWith(Vec<GeoDisjointProperty>);
2487 impl<'de> Deserialize<'de> for DeserializeWith {
2488 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2489 where
2490 D: Deserializer<'de>,
2491 {
2492 Ok(DeserializeWith(serde_with::As::<
2493 serde_with::OneOrMany<serde_with::Same>,
2494 >::deserialize(deserializer)?))
2495 }
2496 }
2497 match map.next_value::<DeserializeWith>() {
2498 Ok(deserialize_with) => deserialize_with.0,
2499 Err(err) => {
2500 return Err(err);
2501 }
2502 }
2503 });
2504 }
2505 Field::GeoEquals => {
2506 if r#geo_equals_property.is_some() {
2507 return Err(<A::Error as de::Error>::duplicate_field(
2508 "geoEquals",
2509 ));
2510 }
2511 r#geo_equals_property = Some({
2512 struct DeserializeWith(Vec<GeoEqualsProperty>);
2513 impl<'de> Deserialize<'de> for DeserializeWith {
2514 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2515 where
2516 D: Deserializer<'de>,
2517 {
2518 Ok(DeserializeWith(serde_with::As::<
2519 serde_with::OneOrMany<serde_with::Same>,
2520 >::deserialize(deserializer)?))
2521 }
2522 }
2523 match map.next_value::<DeserializeWith>() {
2524 Ok(deserialize_with) => deserialize_with.0,
2525 Err(err) => {
2526 return Err(err);
2527 }
2528 }
2529 });
2530 }
2531 Field::GeoIntersects => {
2532 if r#geo_intersects_property.is_some() {
2533 return Err(<A::Error as de::Error>::duplicate_field(
2534 "geoIntersects",
2535 ));
2536 }
2537 r#geo_intersects_property = Some({
2538 struct DeserializeWith(Vec<GeoIntersectsProperty>);
2539 impl<'de> Deserialize<'de> for DeserializeWith {
2540 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2541 where
2542 D: Deserializer<'de>,
2543 {
2544 Ok(DeserializeWith(serde_with::As::<
2545 serde_with::OneOrMany<serde_with::Same>,
2546 >::deserialize(deserializer)?))
2547 }
2548 }
2549 match map.next_value::<DeserializeWith>() {
2550 Ok(deserialize_with) => deserialize_with.0,
2551 Err(err) => {
2552 return Err(err);
2553 }
2554 }
2555 });
2556 }
2557 Field::GeoOverlaps => {
2558 if r#geo_overlaps_property.is_some() {
2559 return Err(<A::Error as de::Error>::duplicate_field(
2560 "geoOverlaps",
2561 ));
2562 }
2563 r#geo_overlaps_property = Some({
2564 struct DeserializeWith(Vec<GeoOverlapsProperty>);
2565 impl<'de> Deserialize<'de> for DeserializeWith {
2566 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2567 where
2568 D: Deserializer<'de>,
2569 {
2570 Ok(DeserializeWith(serde_with::As::<
2571 serde_with::OneOrMany<serde_with::Same>,
2572 >::deserialize(deserializer)?))
2573 }
2574 }
2575 match map.next_value::<DeserializeWith>() {
2576 Ok(deserialize_with) => deserialize_with.0,
2577 Err(err) => {
2578 return Err(err);
2579 }
2580 }
2581 });
2582 }
2583 Field::GeoTouches => {
2584 if r#geo_touches_property.is_some() {
2585 return Err(<A::Error as de::Error>::duplicate_field(
2586 "geoTouches",
2587 ));
2588 }
2589 r#geo_touches_property = Some({
2590 struct DeserializeWith(Vec<GeoTouchesProperty>);
2591 impl<'de> Deserialize<'de> for DeserializeWith {
2592 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2593 where
2594 D: Deserializer<'de>,
2595 {
2596 Ok(DeserializeWith(serde_with::As::<
2597 serde_with::OneOrMany<serde_with::Same>,
2598 >::deserialize(deserializer)?))
2599 }
2600 }
2601 match map.next_value::<DeserializeWith>() {
2602 Ok(deserialize_with) => deserialize_with.0,
2603 Err(err) => {
2604 return Err(err);
2605 }
2606 }
2607 });
2608 }
2609 Field::GeoWithin => {
2610 if r#geo_within_property.is_some() {
2611 return Err(<A::Error as de::Error>::duplicate_field(
2612 "geoWithin",
2613 ));
2614 }
2615 r#geo_within_property = Some({
2616 struct DeserializeWith(Vec<GeoWithinProperty>);
2617 impl<'de> Deserialize<'de> for DeserializeWith {
2618 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2619 where
2620 D: Deserializer<'de>,
2621 {
2622 Ok(DeserializeWith(serde_with::As::<
2623 serde_with::OneOrMany<serde_with::Same>,
2624 >::deserialize(deserializer)?))
2625 }
2626 }
2627 match map.next_value::<DeserializeWith>() {
2628 Ok(deserialize_with) => deserialize_with.0,
2629 Err(err) => {
2630 return Err(err);
2631 }
2632 }
2633 });
2634 }
2635 Field::GlobalLocationNumber => {
2636 if r#global_location_number_property.is_some() {
2637 return Err(<A::Error as de::Error>::duplicate_field(
2638 "globalLocationNumber",
2639 ));
2640 }
2641 r#global_location_number_property = Some({
2642 struct DeserializeWith(Vec<GlobalLocationNumberProperty>);
2643 impl<'de> Deserialize<'de> for DeserializeWith {
2644 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2645 where
2646 D: Deserializer<'de>,
2647 {
2648 Ok(DeserializeWith(serde_with::As::<
2649 serde_with::OneOrMany<serde_with::Same>,
2650 >::deserialize(deserializer)?))
2651 }
2652 }
2653 match map.next_value::<DeserializeWith>() {
2654 Ok(deserialize_with) => deserialize_with.0,
2655 Err(err) => {
2656 return Err(err);
2657 }
2658 }
2659 });
2660 }
2661 Field::HasDriveThroughService => {
2662 if r#has_drive_through_service_property.is_some() {
2663 return Err(<A::Error as de::Error>::duplicate_field(
2664 "hasDriveThroughService",
2665 ));
2666 }
2667 r#has_drive_through_service_property = Some({
2668 struct DeserializeWith(Vec<HasDriveThroughServiceProperty>);
2669 impl<'de> Deserialize<'de> for DeserializeWith {
2670 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2671 where
2672 D: Deserializer<'de>,
2673 {
2674 Ok(DeserializeWith(serde_with::As::<
2675 serde_with::OneOrMany<serde_with::Same>,
2676 >::deserialize(deserializer)?))
2677 }
2678 }
2679 match map.next_value::<DeserializeWith>() {
2680 Ok(deserialize_with) => deserialize_with.0,
2681 Err(err) => {
2682 return Err(err);
2683 }
2684 }
2685 });
2686 }
2687 Field::HasMap => {
2688 if r#has_map_property.is_some() {
2689 return Err(<A::Error as de::Error>::duplicate_field("hasMap"));
2690 }
2691 r#has_map_property = Some({
2692 struct DeserializeWith(Vec<HasMapProperty>);
2693 impl<'de> Deserialize<'de> for DeserializeWith {
2694 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2695 where
2696 D: Deserializer<'de>,
2697 {
2698 Ok(DeserializeWith(serde_with::As::<
2699 serde_with::OneOrMany<serde_with::Same>,
2700 >::deserialize(deserializer)?))
2701 }
2702 }
2703 match map.next_value::<DeserializeWith>() {
2704 Ok(deserialize_with) => deserialize_with.0,
2705 Err(err) => {
2706 return Err(err);
2707 }
2708 }
2709 });
2710 }
2711 Field::IsAccessibleForFree => {
2712 if r#is_accessible_for_free_property.is_some() {
2713 return Err(<A::Error as de::Error>::duplicate_field(
2714 "isAccessibleForFree",
2715 ));
2716 }
2717 r#is_accessible_for_free_property = Some({
2718 struct DeserializeWith(Vec<IsAccessibleForFreeProperty>);
2719 impl<'de> Deserialize<'de> for DeserializeWith {
2720 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2721 where
2722 D: Deserializer<'de>,
2723 {
2724 Ok(DeserializeWith(serde_with::As::<
2725 serde_with::OneOrMany<serde_with::Same>,
2726 >::deserialize(deserializer)?))
2727 }
2728 }
2729 match map.next_value::<DeserializeWith>() {
2730 Ok(deserialize_with) => deserialize_with.0,
2731 Err(err) => {
2732 return Err(err);
2733 }
2734 }
2735 });
2736 }
2737 Field::IsicV4 => {
2738 if r#isic_v_4_property.is_some() {
2739 return Err(<A::Error as de::Error>::duplicate_field("isicV4"));
2740 }
2741 r#isic_v_4_property = Some({
2742 struct DeserializeWith(Vec<IsicV4Property>);
2743 impl<'de> Deserialize<'de> for DeserializeWith {
2744 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2745 where
2746 D: Deserializer<'de>,
2747 {
2748 Ok(DeserializeWith(serde_with::As::<
2749 serde_with::OneOrMany<serde_with::Same>,
2750 >::deserialize(deserializer)?))
2751 }
2752 }
2753 match map.next_value::<DeserializeWith>() {
2754 Ok(deserialize_with) => deserialize_with.0,
2755 Err(err) => {
2756 return Err(err);
2757 }
2758 }
2759 });
2760 }
2761 Field::Keywords => {
2762 if r#keywords_property.is_some() {
2763 return Err(<A::Error as de::Error>::duplicate_field(
2764 "keywords",
2765 ));
2766 }
2767 r#keywords_property = Some({
2768 struct DeserializeWith(Vec<KeywordsProperty>);
2769 impl<'de> Deserialize<'de> for DeserializeWith {
2770 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2771 where
2772 D: Deserializer<'de>,
2773 {
2774 Ok(DeserializeWith(serde_with::As::<
2775 serde_with::OneOrMany<serde_with::Same>,
2776 >::deserialize(deserializer)?))
2777 }
2778 }
2779 match map.next_value::<DeserializeWith>() {
2780 Ok(deserialize_with) => deserialize_with.0,
2781 Err(err) => {
2782 return Err(err);
2783 }
2784 }
2785 });
2786 }
2787 Field::Latitude => {
2788 if r#latitude_property.is_some() {
2789 return Err(<A::Error as de::Error>::duplicate_field(
2790 "latitude",
2791 ));
2792 }
2793 r#latitude_property = Some({
2794 struct DeserializeWith(Vec<LatitudeProperty>);
2795 impl<'de> Deserialize<'de> for DeserializeWith {
2796 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2797 where
2798 D: Deserializer<'de>,
2799 {
2800 Ok(DeserializeWith(serde_with::As::<
2801 serde_with::OneOrMany<serde_with::Same>,
2802 >::deserialize(deserializer)?))
2803 }
2804 }
2805 match map.next_value::<DeserializeWith>() {
2806 Ok(deserialize_with) => deserialize_with.0,
2807 Err(err) => {
2808 return Err(err);
2809 }
2810 }
2811 });
2812 }
2813 Field::Logo => {
2814 if r#logo_property.is_some() {
2815 return Err(<A::Error as de::Error>::duplicate_field("logo"));
2816 }
2817 r#logo_property = Some({
2818 struct DeserializeWith(Vec<LogoProperty>);
2819 impl<'de> Deserialize<'de> for DeserializeWith {
2820 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2821 where
2822 D: Deserializer<'de>,
2823 {
2824 Ok(DeserializeWith(serde_with::As::<
2825 serde_with::OneOrMany<serde_with::Same>,
2826 >::deserialize(deserializer)?))
2827 }
2828 }
2829 match map.next_value::<DeserializeWith>() {
2830 Ok(deserialize_with) => deserialize_with.0,
2831 Err(err) => {
2832 return Err(err);
2833 }
2834 }
2835 });
2836 }
2837 Field::Longitude => {
2838 if r#longitude_property.is_some() {
2839 return Err(<A::Error as de::Error>::duplicate_field(
2840 "longitude",
2841 ));
2842 }
2843 r#longitude_property = Some({
2844 struct DeserializeWith(Vec<LongitudeProperty>);
2845 impl<'de> Deserialize<'de> for DeserializeWith {
2846 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2847 where
2848 D: Deserializer<'de>,
2849 {
2850 Ok(DeserializeWith(serde_with::As::<
2851 serde_with::OneOrMany<serde_with::Same>,
2852 >::deserialize(deserializer)?))
2853 }
2854 }
2855 match map.next_value::<DeserializeWith>() {
2856 Ok(deserialize_with) => deserialize_with.0,
2857 Err(err) => {
2858 return Err(err);
2859 }
2860 }
2861 });
2862 }
2863 Field::Map => {
2864 if r#map_property.is_some() {
2865 return Err(<A::Error as de::Error>::duplicate_field("map"));
2866 }
2867 r#map_property = Some({
2868 struct DeserializeWith(Vec<MapProperty>);
2869 impl<'de> Deserialize<'de> for DeserializeWith {
2870 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2871 where
2872 D: Deserializer<'de>,
2873 {
2874 Ok(DeserializeWith(serde_with::As::<
2875 serde_with::OneOrMany<serde_with::Same>,
2876 >::deserialize(deserializer)?))
2877 }
2878 }
2879 match map.next_value::<DeserializeWith>() {
2880 Ok(deserialize_with) => deserialize_with.0,
2881 Err(err) => {
2882 return Err(err);
2883 }
2884 }
2885 });
2886 }
2887 Field::Maps => {
2888 if r#maps_property.is_some() {
2889 return Err(<A::Error as de::Error>::duplicate_field("maps"));
2890 }
2891 r#maps_property = Some({
2892 struct DeserializeWith(Vec<MapsProperty>);
2893 impl<'de> Deserialize<'de> for DeserializeWith {
2894 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2895 where
2896 D: Deserializer<'de>,
2897 {
2898 Ok(DeserializeWith(serde_with::As::<
2899 serde_with::OneOrMany<serde_with::Same>,
2900 >::deserialize(deserializer)?))
2901 }
2902 }
2903 match map.next_value::<DeserializeWith>() {
2904 Ok(deserialize_with) => deserialize_with.0,
2905 Err(err) => {
2906 return Err(err);
2907 }
2908 }
2909 });
2910 }
2911 Field::MaximumAttendeeCapacity => {
2912 if r#maximum_attendee_capacity_property.is_some() {
2913 return Err(<A::Error as de::Error>::duplicate_field(
2914 "maximumAttendeeCapacity",
2915 ));
2916 }
2917 r#maximum_attendee_capacity_property = Some({
2918 struct DeserializeWith(Vec<MaximumAttendeeCapacityProperty>);
2919 impl<'de> Deserialize<'de> for DeserializeWith {
2920 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2921 where
2922 D: Deserializer<'de>,
2923 {
2924 Ok(DeserializeWith(serde_with::As::<
2925 serde_with::OneOrMany<serde_with::Same>,
2926 >::deserialize(deserializer)?))
2927 }
2928 }
2929 match map.next_value::<DeserializeWith>() {
2930 Ok(deserialize_with) => deserialize_with.0,
2931 Err(err) => {
2932 return Err(err);
2933 }
2934 }
2935 });
2936 }
2937 Field::OpeningHoursSpecification => {
2938 if r#opening_hours_specification_property.is_some() {
2939 return Err(<A::Error as de::Error>::duplicate_field(
2940 "openingHoursSpecification",
2941 ));
2942 }
2943 r#opening_hours_specification_property = Some({
2944 struct DeserializeWith(Vec<OpeningHoursSpecificationProperty>);
2945 impl<'de> Deserialize<'de> for DeserializeWith {
2946 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2947 where
2948 D: Deserializer<'de>,
2949 {
2950 Ok(DeserializeWith(serde_with::As::<
2951 serde_with::OneOrMany<serde_with::Same>,
2952 >::deserialize(deserializer)?))
2953 }
2954 }
2955 match map.next_value::<DeserializeWith>() {
2956 Ok(deserialize_with) => deserialize_with.0,
2957 Err(err) => {
2958 return Err(err);
2959 }
2960 }
2961 });
2962 }
2963 Field::Photo => {
2964 if r#photo_property.is_some() {
2965 return Err(<A::Error as de::Error>::duplicate_field("photo"));
2966 }
2967 r#photo_property = Some({
2968 struct DeserializeWith(Vec<PhotoProperty>);
2969 impl<'de> Deserialize<'de> for DeserializeWith {
2970 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2971 where
2972 D: Deserializer<'de>,
2973 {
2974 Ok(DeserializeWith(serde_with::As::<
2975 serde_with::OneOrMany<serde_with::Same>,
2976 >::deserialize(deserializer)?))
2977 }
2978 }
2979 match map.next_value::<DeserializeWith>() {
2980 Ok(deserialize_with) => deserialize_with.0,
2981 Err(err) => {
2982 return Err(err);
2983 }
2984 }
2985 });
2986 }
2987 Field::Photos => {
2988 if r#photos_property.is_some() {
2989 return Err(<A::Error as de::Error>::duplicate_field("photos"));
2990 }
2991 r#photos_property = Some({
2992 struct DeserializeWith(Vec<PhotosProperty>);
2993 impl<'de> Deserialize<'de> for DeserializeWith {
2994 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2995 where
2996 D: Deserializer<'de>,
2997 {
2998 Ok(DeserializeWith(serde_with::As::<
2999 serde_with::OneOrMany<serde_with::Same>,
3000 >::deserialize(deserializer)?))
3001 }
3002 }
3003 match map.next_value::<DeserializeWith>() {
3004 Ok(deserialize_with) => deserialize_with.0,
3005 Err(err) => {
3006 return Err(err);
3007 }
3008 }
3009 });
3010 }
3011 Field::PublicAccess => {
3012 if r#public_access_property.is_some() {
3013 return Err(<A::Error as de::Error>::duplicate_field(
3014 "publicAccess",
3015 ));
3016 }
3017 r#public_access_property = Some({
3018 struct DeserializeWith(Vec<PublicAccessProperty>);
3019 impl<'de> Deserialize<'de> for DeserializeWith {
3020 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3021 where
3022 D: Deserializer<'de>,
3023 {
3024 Ok(DeserializeWith(serde_with::As::<
3025 serde_with::OneOrMany<serde_with::Same>,
3026 >::deserialize(deserializer)?))
3027 }
3028 }
3029 match map.next_value::<DeserializeWith>() {
3030 Ok(deserialize_with) => deserialize_with.0,
3031 Err(err) => {
3032 return Err(err);
3033 }
3034 }
3035 });
3036 }
3037 Field::Review => {
3038 if r#review_property.is_some() {
3039 return Err(<A::Error as de::Error>::duplicate_field("review"));
3040 }
3041 r#review_property = Some({
3042 struct DeserializeWith(Vec<ReviewProperty>);
3043 impl<'de> Deserialize<'de> for DeserializeWith {
3044 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3045 where
3046 D: Deserializer<'de>,
3047 {
3048 Ok(DeserializeWith(serde_with::As::<
3049 serde_with::OneOrMany<serde_with::Same>,
3050 >::deserialize(deserializer)?))
3051 }
3052 }
3053 match map.next_value::<DeserializeWith>() {
3054 Ok(deserialize_with) => deserialize_with.0,
3055 Err(err) => {
3056 return Err(err);
3057 }
3058 }
3059 });
3060 }
3061 Field::Reviews => {
3062 if r#reviews_property.is_some() {
3063 return Err(<A::Error as de::Error>::duplicate_field(
3064 "reviews",
3065 ));
3066 }
3067 r#reviews_property = Some({
3068 struct DeserializeWith(Vec<ReviewsProperty>);
3069 impl<'de> Deserialize<'de> for DeserializeWith {
3070 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3071 where
3072 D: Deserializer<'de>,
3073 {
3074 Ok(DeserializeWith(serde_with::As::<
3075 serde_with::OneOrMany<serde_with::Same>,
3076 >::deserialize(deserializer)?))
3077 }
3078 }
3079 match map.next_value::<DeserializeWith>() {
3080 Ok(deserialize_with) => deserialize_with.0,
3081 Err(err) => {
3082 return Err(err);
3083 }
3084 }
3085 });
3086 }
3087 Field::Slogan => {
3088 if r#slogan_property.is_some() {
3089 return Err(<A::Error as de::Error>::duplicate_field("slogan"));
3090 }
3091 r#slogan_property = Some({
3092 struct DeserializeWith(Vec<SloganProperty>);
3093 impl<'de> Deserialize<'de> for DeserializeWith {
3094 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3095 where
3096 D: Deserializer<'de>,
3097 {
3098 Ok(DeserializeWith(serde_with::As::<
3099 serde_with::OneOrMany<serde_with::Same>,
3100 >::deserialize(deserializer)?))
3101 }
3102 }
3103 match map.next_value::<DeserializeWith>() {
3104 Ok(deserialize_with) => deserialize_with.0,
3105 Err(err) => {
3106 return Err(err);
3107 }
3108 }
3109 });
3110 }
3111 Field::SmokingAllowed => {
3112 if r#smoking_allowed_property.is_some() {
3113 return Err(<A::Error as de::Error>::duplicate_field(
3114 "smokingAllowed",
3115 ));
3116 }
3117 r#smoking_allowed_property = Some({
3118 struct DeserializeWith(Vec<SmokingAllowedProperty>);
3119 impl<'de> Deserialize<'de> for DeserializeWith {
3120 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3121 where
3122 D: Deserializer<'de>,
3123 {
3124 Ok(DeserializeWith(serde_with::As::<
3125 serde_with::OneOrMany<serde_with::Same>,
3126 >::deserialize(deserializer)?))
3127 }
3128 }
3129 match map.next_value::<DeserializeWith>() {
3130 Ok(deserialize_with) => deserialize_with.0,
3131 Err(err) => {
3132 return Err(err);
3133 }
3134 }
3135 });
3136 }
3137 Field::SpecialOpeningHoursSpecification => {
3138 if r#special_opening_hours_specification_property.is_some() {
3139 return Err(<A::Error as de::Error>::duplicate_field(
3140 "specialOpeningHoursSpecification",
3141 ));
3142 }
3143 r#special_opening_hours_specification_property = Some({
3144 struct DeserializeWith(
3145 Vec<SpecialOpeningHoursSpecificationProperty>,
3146 );
3147 impl<'de> Deserialize<'de> for DeserializeWith {
3148 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3149 where
3150 D: Deserializer<'de>,
3151 {
3152 Ok(DeserializeWith(serde_with::As::<
3153 serde_with::OneOrMany<serde_with::Same>,
3154 >::deserialize(deserializer)?))
3155 }
3156 }
3157 match map.next_value::<DeserializeWith>() {
3158 Ok(deserialize_with) => deserialize_with.0,
3159 Err(err) => {
3160 return Err(err);
3161 }
3162 }
3163 });
3164 }
3165 Field::Telephone => {
3166 if r#telephone_property.is_some() {
3167 return Err(<A::Error as de::Error>::duplicate_field(
3168 "telephone",
3169 ));
3170 }
3171 r#telephone_property = Some({
3172 struct DeserializeWith(Vec<TelephoneProperty>);
3173 impl<'de> Deserialize<'de> for DeserializeWith {
3174 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3175 where
3176 D: Deserializer<'de>,
3177 {
3178 Ok(DeserializeWith(serde_with::As::<
3179 serde_with::OneOrMany<serde_with::Same>,
3180 >::deserialize(deserializer)?))
3181 }
3182 }
3183 match map.next_value::<DeserializeWith>() {
3184 Ok(deserialize_with) => deserialize_with.0,
3185 Err(err) => {
3186 return Err(err);
3187 }
3188 }
3189 });
3190 }
3191 Field::TourBookingPage => {
3192 if r#tour_booking_page_property.is_some() {
3193 return Err(<A::Error as de::Error>::duplicate_field(
3194 "tourBookingPage",
3195 ));
3196 }
3197 r#tour_booking_page_property = Some({
3198 struct DeserializeWith(Vec<TourBookingPageProperty>);
3199 impl<'de> Deserialize<'de> for DeserializeWith {
3200 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3201 where
3202 D: Deserializer<'de>,
3203 {
3204 Ok(DeserializeWith(serde_with::As::<
3205 serde_with::OneOrMany<serde_with::Same>,
3206 >::deserialize(deserializer)?))
3207 }
3208 }
3209 match map.next_value::<DeserializeWith>() {
3210 Ok(deserialize_with) => deserialize_with.0,
3211 Err(err) => {
3212 return Err(err);
3213 }
3214 }
3215 });
3216 }
3217 Field::AdditionalType => {
3218 if r#additional_type_property.is_some() {
3219 return Err(<A::Error as de::Error>::duplicate_field(
3220 "additionalType",
3221 ));
3222 }
3223 r#additional_type_property = Some({
3224 struct DeserializeWith(Vec<AdditionalTypeProperty>);
3225 impl<'de> Deserialize<'de> for DeserializeWith {
3226 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3227 where
3228 D: Deserializer<'de>,
3229 {
3230 Ok(DeserializeWith(serde_with::As::<
3231 serde_with::OneOrMany<serde_with::Same>,
3232 >::deserialize(deserializer)?))
3233 }
3234 }
3235 match map.next_value::<DeserializeWith>() {
3236 Ok(deserialize_with) => deserialize_with.0,
3237 Err(err) => {
3238 return Err(err);
3239 }
3240 }
3241 });
3242 }
3243 Field::AlternateName => {
3244 if r#alternate_name_property.is_some() {
3245 return Err(<A::Error as de::Error>::duplicate_field(
3246 "alternateName",
3247 ));
3248 }
3249 r#alternate_name_property = Some({
3250 struct DeserializeWith(Vec<AlternateNameProperty>);
3251 impl<'de> Deserialize<'de> for DeserializeWith {
3252 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3253 where
3254 D: Deserializer<'de>,
3255 {
3256 Ok(DeserializeWith(serde_with::As::<
3257 serde_with::OneOrMany<serde_with::Same>,
3258 >::deserialize(deserializer)?))
3259 }
3260 }
3261 match map.next_value::<DeserializeWith>() {
3262 Ok(deserialize_with) => deserialize_with.0,
3263 Err(err) => {
3264 return Err(err);
3265 }
3266 }
3267 });
3268 }
3269 Field::Description => {
3270 if r#description_property.is_some() {
3271 return Err(<A::Error as de::Error>::duplicate_field(
3272 "description",
3273 ));
3274 }
3275 r#description_property = Some({
3276 struct DeserializeWith(Vec<DescriptionProperty>);
3277 impl<'de> Deserialize<'de> for DeserializeWith {
3278 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3279 where
3280 D: Deserializer<'de>,
3281 {
3282 Ok(DeserializeWith(serde_with::As::<
3283 serde_with::OneOrMany<serde_with::Same>,
3284 >::deserialize(deserializer)?))
3285 }
3286 }
3287 match map.next_value::<DeserializeWith>() {
3288 Ok(deserialize_with) => deserialize_with.0,
3289 Err(err) => {
3290 return Err(err);
3291 }
3292 }
3293 });
3294 }
3295 Field::DisambiguatingDescription => {
3296 if r#disambiguating_description_property.is_some() {
3297 return Err(<A::Error as de::Error>::duplicate_field(
3298 "disambiguatingDescription",
3299 ));
3300 }
3301 r#disambiguating_description_property = Some({
3302 struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
3303 impl<'de> Deserialize<'de> for DeserializeWith {
3304 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3305 where
3306 D: Deserializer<'de>,
3307 {
3308 Ok(DeserializeWith(serde_with::As::<
3309 serde_with::OneOrMany<serde_with::Same>,
3310 >::deserialize(deserializer)?))
3311 }
3312 }
3313 match map.next_value::<DeserializeWith>() {
3314 Ok(deserialize_with) => deserialize_with.0,
3315 Err(err) => {
3316 return Err(err);
3317 }
3318 }
3319 });
3320 }
3321 Field::Identifier => {
3322 if r#identifier_property.is_some() {
3323 return Err(<A::Error as de::Error>::duplicate_field(
3324 "identifier",
3325 ));
3326 }
3327 r#identifier_property = Some({
3328 struct DeserializeWith(Vec<IdentifierProperty>);
3329 impl<'de> Deserialize<'de> for DeserializeWith {
3330 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3331 where
3332 D: Deserializer<'de>,
3333 {
3334 Ok(DeserializeWith(serde_with::As::<
3335 serde_with::OneOrMany<serde_with::Same>,
3336 >::deserialize(deserializer)?))
3337 }
3338 }
3339 match map.next_value::<DeserializeWith>() {
3340 Ok(deserialize_with) => deserialize_with.0,
3341 Err(err) => {
3342 return Err(err);
3343 }
3344 }
3345 });
3346 }
3347 Field::Image => {
3348 if r#image_property.is_some() {
3349 return Err(<A::Error as de::Error>::duplicate_field("image"));
3350 }
3351 r#image_property = Some({
3352 struct DeserializeWith(Vec<ImageProperty>);
3353 impl<'de> Deserialize<'de> for DeserializeWith {
3354 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3355 where
3356 D: Deserializer<'de>,
3357 {
3358 Ok(DeserializeWith(serde_with::As::<
3359 serde_with::OneOrMany<serde_with::Same>,
3360 >::deserialize(deserializer)?))
3361 }
3362 }
3363 match map.next_value::<DeserializeWith>() {
3364 Ok(deserialize_with) => deserialize_with.0,
3365 Err(err) => {
3366 return Err(err);
3367 }
3368 }
3369 });
3370 }
3371 Field::MainEntityOfPage => {
3372 if r#main_entity_of_page_property.is_some() {
3373 return Err(<A::Error as de::Error>::duplicate_field(
3374 "mainEntityOfPage",
3375 ));
3376 }
3377 r#main_entity_of_page_property = Some({
3378 struct DeserializeWith(Vec<MainEntityOfPageProperty>);
3379 impl<'de> Deserialize<'de> for DeserializeWith {
3380 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3381 where
3382 D: Deserializer<'de>,
3383 {
3384 Ok(DeserializeWith(serde_with::As::<
3385 serde_with::OneOrMany<serde_with::Same>,
3386 >::deserialize(deserializer)?))
3387 }
3388 }
3389 match map.next_value::<DeserializeWith>() {
3390 Ok(deserialize_with) => deserialize_with.0,
3391 Err(err) => {
3392 return Err(err);
3393 }
3394 }
3395 });
3396 }
3397 Field::Name => {
3398 if r#name_property.is_some() {
3399 return Err(<A::Error as de::Error>::duplicate_field("name"));
3400 }
3401 r#name_property = Some({
3402 struct DeserializeWith(Vec<NameProperty>);
3403 impl<'de> Deserialize<'de> for DeserializeWith {
3404 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3405 where
3406 D: Deserializer<'de>,
3407 {
3408 Ok(DeserializeWith(serde_with::As::<
3409 serde_with::OneOrMany<serde_with::Same>,
3410 >::deserialize(deserializer)?))
3411 }
3412 }
3413 match map.next_value::<DeserializeWith>() {
3414 Ok(deserialize_with) => deserialize_with.0,
3415 Err(err) => {
3416 return Err(err);
3417 }
3418 }
3419 });
3420 }
3421 Field::PotentialAction => {
3422 if r#potential_action_property.is_some() {
3423 return Err(<A::Error as de::Error>::duplicate_field(
3424 "potentialAction",
3425 ));
3426 }
3427 r#potential_action_property = Some({
3428 struct DeserializeWith(Vec<PotentialActionProperty>);
3429 impl<'de> Deserialize<'de> for DeserializeWith {
3430 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3431 where
3432 D: Deserializer<'de>,
3433 {
3434 Ok(DeserializeWith(serde_with::As::<
3435 serde_with::OneOrMany<serde_with::Same>,
3436 >::deserialize(deserializer)?))
3437 }
3438 }
3439 match map.next_value::<DeserializeWith>() {
3440 Ok(deserialize_with) => deserialize_with.0,
3441 Err(err) => {
3442 return Err(err);
3443 }
3444 }
3445 });
3446 }
3447 Field::SameAs => {
3448 if r#same_as_property.is_some() {
3449 return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
3450 }
3451 r#same_as_property = Some({
3452 struct DeserializeWith(Vec<SameAsProperty>);
3453 impl<'de> Deserialize<'de> for DeserializeWith {
3454 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3455 where
3456 D: Deserializer<'de>,
3457 {
3458 Ok(DeserializeWith(serde_with::As::<
3459 serde_with::OneOrMany<serde_with::Same>,
3460 >::deserialize(deserializer)?))
3461 }
3462 }
3463 match map.next_value::<DeserializeWith>() {
3464 Ok(deserialize_with) => deserialize_with.0,
3465 Err(err) => {
3466 return Err(err);
3467 }
3468 }
3469 });
3470 }
3471 Field::SubjectOf => {
3472 if r#subject_of_property.is_some() {
3473 return Err(<A::Error as de::Error>::duplicate_field(
3474 "subjectOf",
3475 ));
3476 }
3477 r#subject_of_property = Some({
3478 struct DeserializeWith(Vec<SubjectOfProperty>);
3479 impl<'de> Deserialize<'de> for DeserializeWith {
3480 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3481 where
3482 D: Deserializer<'de>,
3483 {
3484 Ok(DeserializeWith(serde_with::As::<
3485 serde_with::OneOrMany<serde_with::Same>,
3486 >::deserialize(deserializer)?))
3487 }
3488 }
3489 match map.next_value::<DeserializeWith>() {
3490 Ok(deserialize_with) => deserialize_with.0,
3491 Err(err) => {
3492 return Err(err);
3493 }
3494 }
3495 });
3496 }
3497 Field::Url => {
3498 if r#url_property.is_some() {
3499 return Err(<A::Error as de::Error>::duplicate_field("url"));
3500 }
3501 r#url_property = Some({
3502 struct DeserializeWith(Vec<UrlProperty>);
3503 impl<'de> Deserialize<'de> for DeserializeWith {
3504 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3505 where
3506 D: Deserializer<'de>,
3507 {
3508 Ok(DeserializeWith(serde_with::As::<
3509 serde_with::OneOrMany<serde_with::Same>,
3510 >::deserialize(deserializer)?))
3511 }
3512 }
3513 match map.next_value::<DeserializeWith>() {
3514 Ok(deserialize_with) => deserialize_with.0,
3515 Err(err) => {
3516 return Err(err);
3517 }
3518 }
3519 });
3520 }
3521 Field::Ignore => {
3522 let _ = map.next_value::<de::IgnoredAny>()?;
3523 }
3524 }
3525 }
3526 Ok(Place {
3527 r#additional_property: r#additional_property_property.unwrap_or_default(),
3528 r#address: r#address_property.unwrap_or_default(),
3529 r#aggregate_rating: r#aggregate_rating_property.unwrap_or_default(),
3530 r#amenity_feature: r#amenity_feature_property.unwrap_or_default(),
3531 r#branch_code: r#branch_code_property.unwrap_or_default(),
3532 r#contained_in: r#contained_in_property.unwrap_or_default(),
3533 r#contained_in_place: r#contained_in_place_property.unwrap_or_default(),
3534 r#contains_place: r#contains_place_property.unwrap_or_default(),
3535 r#event: r#event_property.unwrap_or_default(),
3536 r#events: r#events_property.unwrap_or_default(),
3537 r#fax_number: r#fax_number_property.unwrap_or_default(),
3538 r#geo: r#geo_property.unwrap_or_default(),
3539 r#geo_contains: r#geo_contains_property.unwrap_or_default(),
3540 r#geo_covered_by: r#geo_covered_by_property.unwrap_or_default(),
3541 r#geo_covers: r#geo_covers_property.unwrap_or_default(),
3542 r#geo_crosses: r#geo_crosses_property.unwrap_or_default(),
3543 r#geo_disjoint: r#geo_disjoint_property.unwrap_or_default(),
3544 r#geo_equals: r#geo_equals_property.unwrap_or_default(),
3545 r#geo_intersects: r#geo_intersects_property.unwrap_or_default(),
3546 r#geo_overlaps: r#geo_overlaps_property.unwrap_or_default(),
3547 r#geo_touches: r#geo_touches_property.unwrap_or_default(),
3548 r#geo_within: r#geo_within_property.unwrap_or_default(),
3549 r#global_location_number: r#global_location_number_property
3550 .unwrap_or_default(),
3551 r#has_drive_through_service: r#has_drive_through_service_property
3552 .unwrap_or_default(),
3553 r#has_map: r#has_map_property.unwrap_or_default(),
3554 r#is_accessible_for_free: r#is_accessible_for_free_property
3555 .unwrap_or_default(),
3556 r#isic_v_4: r#isic_v_4_property.unwrap_or_default(),
3557 r#keywords: r#keywords_property.unwrap_or_default(),
3558 r#latitude: r#latitude_property.unwrap_or_default(),
3559 r#logo: r#logo_property.unwrap_or_default(),
3560 r#longitude: r#longitude_property.unwrap_or_default(),
3561 r#map: r#map_property.unwrap_or_default(),
3562 r#maps: r#maps_property.unwrap_or_default(),
3563 r#maximum_attendee_capacity: r#maximum_attendee_capacity_property
3564 .unwrap_or_default(),
3565 r#opening_hours_specification: r#opening_hours_specification_property
3566 .unwrap_or_default(),
3567 r#photo: r#photo_property.unwrap_or_default(),
3568 r#photos: r#photos_property.unwrap_or_default(),
3569 r#public_access: r#public_access_property.unwrap_or_default(),
3570 r#review: r#review_property.unwrap_or_default(),
3571 r#reviews: r#reviews_property.unwrap_or_default(),
3572 r#slogan: r#slogan_property.unwrap_or_default(),
3573 r#smoking_allowed: r#smoking_allowed_property.unwrap_or_default(),
3574 r#special_opening_hours_specification:
3575 r#special_opening_hours_specification_property.unwrap_or_default(),
3576 r#telephone: r#telephone_property.unwrap_or_default(),
3577 r#tour_booking_page: r#tour_booking_page_property.unwrap_or_default(),
3578 r#additional_type: r#additional_type_property.unwrap_or_default(),
3579 r#alternate_name: r#alternate_name_property.unwrap_or_default(),
3580 r#description: r#description_property.unwrap_or_default(),
3581 r#disambiguating_description: r#disambiguating_description_property
3582 .unwrap_or_default(),
3583 r#identifier: r#identifier_property.unwrap_or_default(),
3584 r#image: r#image_property.unwrap_or_default(),
3585 r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
3586 r#name: r#name_property.unwrap_or_default(),
3587 r#potential_action: r#potential_action_property.unwrap_or_default(),
3588 r#same_as: r#same_as_property.unwrap_or_default(),
3589 r#subject_of: r#subject_of_property.unwrap_or_default(),
3590 r#url: r#url_property.unwrap_or_default(),
3591 })
3592 }
3593 }
3594 const FIELDS: &[&str] = &[
3595 "additionalProperty",
3596 "address",
3597 "aggregateRating",
3598 "amenityFeature",
3599 "branchCode",
3600 "containedIn",
3601 "containedInPlace",
3602 "containsPlace",
3603 "event",
3604 "events",
3605 "faxNumber",
3606 "geo",
3607 "geoContains",
3608 "geoCoveredBy",
3609 "geoCovers",
3610 "geoCrosses",
3611 "geoDisjoint",
3612 "geoEquals",
3613 "geoIntersects",
3614 "geoOverlaps",
3615 "geoTouches",
3616 "geoWithin",
3617 "globalLocationNumber",
3618 "hasDriveThroughService",
3619 "hasMap",
3620 "isAccessibleForFree",
3621 "isicV4",
3622 "keywords",
3623 "latitude",
3624 "logo",
3625 "longitude",
3626 "map",
3627 "maps",
3628 "maximumAttendeeCapacity",
3629 "openingHoursSpecification",
3630 "photo",
3631 "photos",
3632 "publicAccess",
3633 "review",
3634 "reviews",
3635 "slogan",
3636 "smokingAllowed",
3637 "specialOpeningHoursSpecification",
3638 "telephone",
3639 "tourBookingPage",
3640 "additionalType",
3641 "alternateName",
3642 "description",
3643 "disambiguatingDescription",
3644 "identifier",
3645 "image",
3646 "mainEntityOfPage",
3647 "name",
3648 "potentialAction",
3649 "sameAs",
3650 "subjectOf",
3651 "url",
3652 ];
3653 deserializer.deserialize_struct("Place", FIELDS, ClassVisitor)
3654 }
3655 }
3656}