1use super::*;
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct Event {
6 pub r#about: Vec<AboutProperty>,
8 pub r#actor: Vec<ActorProperty>,
10 pub r#aggregate_rating: Vec<AggregateRatingProperty>,
12 pub r#attendee: Vec<AttendeeProperty>,
14 #[deprecated = "This schema is superseded by <https://schema.org/attendee>."]
16 pub r#attendees: Vec<AttendeesProperty>,
17 pub r#audience: Vec<AudienceProperty>,
19 pub r#composer: Vec<ComposerProperty>,
21 pub r#contributor: Vec<ContributorProperty>,
23 pub r#director: Vec<DirectorProperty>,
25 pub r#door_time: Vec<DoorTimeProperty>,
27 pub r#duration: Vec<DurationProperty>,
29 pub r#end_date: Vec<EndDateProperty>,
31 pub r#event_attendance_mode: Vec<EventAttendanceModeProperty>,
33 pub r#event_schedule: Vec<EventScheduleProperty>,
35 pub r#event_status: Vec<EventStatusProperty>,
37 pub r#funder: Vec<FunderProperty>,
39 pub r#funding: Vec<FundingProperty>,
41 pub r#in_language: Vec<InLanguageProperty>,
43 pub r#is_accessible_for_free: Vec<IsAccessibleForFreeProperty>,
45 pub r#keywords: Vec<KeywordsProperty>,
47 pub r#location: Vec<LocationProperty>,
49 pub r#maximum_attendee_capacity: Vec<MaximumAttendeeCapacityProperty>,
51 pub r#maximum_physical_attendee_capacity: Vec<MaximumPhysicalAttendeeCapacityProperty>,
53 pub r#maximum_virtual_attendee_capacity: Vec<MaximumVirtualAttendeeCapacityProperty>,
55 pub r#offers: Vec<OffersProperty>,
57 pub r#organizer: Vec<OrganizerProperty>,
59 pub r#performer: Vec<PerformerProperty>,
61 #[deprecated = "This schema is superseded by <https://schema.org/performer>."]
63 pub r#performers: Vec<PerformersProperty>,
64 pub r#previous_start_date: Vec<PreviousStartDateProperty>,
66 pub r#recorded_in: Vec<RecordedInProperty>,
68 pub r#remaining_attendee_capacity: Vec<RemainingAttendeeCapacityProperty>,
70 pub r#review: Vec<ReviewProperty>,
72 pub r#sponsor: Vec<SponsorProperty>,
74 pub r#start_date: Vec<StartDateProperty>,
76 pub r#sub_event: Vec<SubEventProperty>,
78 #[deprecated = "This schema is superseded by <https://schema.org/subEvent>."]
80 pub r#sub_events: Vec<SubEventsProperty>,
81 pub r#super_event: Vec<SuperEventProperty>,
83 pub r#translator: Vec<TranslatorProperty>,
85 pub r#typical_age_range: Vec<TypicalAgeRangeProperty>,
87 pub r#work_featured: Vec<WorkFeaturedProperty>,
89 pub r#work_performed: Vec<WorkPerformedProperty>,
91 pub r#additional_type: Vec<AdditionalTypeProperty>,
93 pub r#alternate_name: Vec<AlternateNameProperty>,
95 pub r#description: Vec<DescriptionProperty>,
97 pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
99 pub r#identifier: Vec<IdentifierProperty>,
101 pub r#image: Vec<ImageProperty>,
103 pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
105 pub r#name: Vec<NameProperty>,
107 pub r#potential_action: Vec<PotentialActionProperty>,
109 pub r#same_as: Vec<SameAsProperty>,
111 pub r#subject_of: Vec<SubjectOfProperty>,
113 pub r#url: Vec<UrlProperty>,
115}
116pub trait EventTrait {
118 fn get_about(&self) -> &[AboutProperty];
120 fn take_about(&mut self) -> Vec<AboutProperty>;
122 fn get_actor(&self) -> &[ActorProperty];
124 fn take_actor(&mut self) -> Vec<ActorProperty>;
126 fn get_aggregate_rating(&self) -> &[AggregateRatingProperty];
128 fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty>;
130 fn get_attendee(&self) -> &[AttendeeProperty];
132 fn take_attendee(&mut self) -> Vec<AttendeeProperty>;
134 #[deprecated = "This schema is superseded by <https://schema.org/attendee>."]
136 fn get_attendees(&self) -> &[AttendeesProperty];
137 #[deprecated = "This schema is superseded by <https://schema.org/attendee>."]
139 fn take_attendees(&mut self) -> Vec<AttendeesProperty>;
140 fn get_audience(&self) -> &[AudienceProperty];
142 fn take_audience(&mut self) -> Vec<AudienceProperty>;
144 fn get_composer(&self) -> &[ComposerProperty];
146 fn take_composer(&mut self) -> Vec<ComposerProperty>;
148 fn get_contributor(&self) -> &[ContributorProperty];
150 fn take_contributor(&mut self) -> Vec<ContributorProperty>;
152 fn get_director(&self) -> &[DirectorProperty];
154 fn take_director(&mut self) -> Vec<DirectorProperty>;
156 fn get_door_time(&self) -> &[DoorTimeProperty];
158 fn take_door_time(&mut self) -> Vec<DoorTimeProperty>;
160 fn get_duration(&self) -> &[DurationProperty];
162 fn take_duration(&mut self) -> Vec<DurationProperty>;
164 fn get_end_date(&self) -> &[EndDateProperty];
166 fn take_end_date(&mut self) -> Vec<EndDateProperty>;
168 fn get_event_attendance_mode(&self) -> &[EventAttendanceModeProperty];
170 fn take_event_attendance_mode(&mut self) -> Vec<EventAttendanceModeProperty>;
172 fn get_event_schedule(&self) -> &[EventScheduleProperty];
174 fn take_event_schedule(&mut self) -> Vec<EventScheduleProperty>;
176 fn get_event_status(&self) -> &[EventStatusProperty];
178 fn take_event_status(&mut self) -> Vec<EventStatusProperty>;
180 fn get_funder(&self) -> &[FunderProperty];
182 fn take_funder(&mut self) -> Vec<FunderProperty>;
184 fn get_funding(&self) -> &[FundingProperty];
186 fn take_funding(&mut self) -> Vec<FundingProperty>;
188 fn get_in_language(&self) -> &[InLanguageProperty];
190 fn take_in_language(&mut self) -> Vec<InLanguageProperty>;
192 fn get_is_accessible_for_free(&self) -> &[IsAccessibleForFreeProperty];
194 fn take_is_accessible_for_free(&mut self) -> Vec<IsAccessibleForFreeProperty>;
196 fn get_keywords(&self) -> &[KeywordsProperty];
198 fn take_keywords(&mut self) -> Vec<KeywordsProperty>;
200 fn get_location(&self) -> &[LocationProperty];
202 fn take_location(&mut self) -> Vec<LocationProperty>;
204 fn get_maximum_attendee_capacity(&self) -> &[MaximumAttendeeCapacityProperty];
206 fn take_maximum_attendee_capacity(&mut self) -> Vec<MaximumAttendeeCapacityProperty>;
208 fn get_maximum_physical_attendee_capacity(&self) -> &[MaximumPhysicalAttendeeCapacityProperty];
210 fn take_maximum_physical_attendee_capacity(
212 &mut self,
213 ) -> Vec<MaximumPhysicalAttendeeCapacityProperty>;
214 fn get_maximum_virtual_attendee_capacity(&self) -> &[MaximumVirtualAttendeeCapacityProperty];
216 fn take_maximum_virtual_attendee_capacity(
218 &mut self,
219 ) -> Vec<MaximumVirtualAttendeeCapacityProperty>;
220 fn get_offers(&self) -> &[OffersProperty];
222 fn take_offers(&mut self) -> Vec<OffersProperty>;
224 fn get_organizer(&self) -> &[OrganizerProperty];
226 fn take_organizer(&mut self) -> Vec<OrganizerProperty>;
228 fn get_performer(&self) -> &[PerformerProperty];
230 fn take_performer(&mut self) -> Vec<PerformerProperty>;
232 #[deprecated = "This schema is superseded by <https://schema.org/performer>."]
234 fn get_performers(&self) -> &[PerformersProperty];
235 #[deprecated = "This schema is superseded by <https://schema.org/performer>."]
237 fn take_performers(&mut self) -> Vec<PerformersProperty>;
238 fn get_previous_start_date(&self) -> &[PreviousStartDateProperty];
240 fn take_previous_start_date(&mut self) -> Vec<PreviousStartDateProperty>;
242 fn get_recorded_in(&self) -> &[RecordedInProperty];
244 fn take_recorded_in(&mut self) -> Vec<RecordedInProperty>;
246 fn get_remaining_attendee_capacity(&self) -> &[RemainingAttendeeCapacityProperty];
248 fn take_remaining_attendee_capacity(&mut self) -> Vec<RemainingAttendeeCapacityProperty>;
250 fn get_review(&self) -> &[ReviewProperty];
252 fn take_review(&mut self) -> Vec<ReviewProperty>;
254 fn get_sponsor(&self) -> &[SponsorProperty];
256 fn take_sponsor(&mut self) -> Vec<SponsorProperty>;
258 fn get_start_date(&self) -> &[StartDateProperty];
260 fn take_start_date(&mut self) -> Vec<StartDateProperty>;
262 fn get_sub_event(&self) -> &[SubEventProperty];
264 fn take_sub_event(&mut self) -> Vec<SubEventProperty>;
266 #[deprecated = "This schema is superseded by <https://schema.org/subEvent>."]
268 fn get_sub_events(&self) -> &[SubEventsProperty];
269 #[deprecated = "This schema is superseded by <https://schema.org/subEvent>."]
271 fn take_sub_events(&mut self) -> Vec<SubEventsProperty>;
272 fn get_super_event(&self) -> &[SuperEventProperty];
274 fn take_super_event(&mut self) -> Vec<SuperEventProperty>;
276 fn get_translator(&self) -> &[TranslatorProperty];
278 fn take_translator(&mut self) -> Vec<TranslatorProperty>;
280 fn get_typical_age_range(&self) -> &[TypicalAgeRangeProperty];
282 fn take_typical_age_range(&mut self) -> Vec<TypicalAgeRangeProperty>;
284 fn get_work_featured(&self) -> &[WorkFeaturedProperty];
286 fn take_work_featured(&mut self) -> Vec<WorkFeaturedProperty>;
288 fn get_work_performed(&self) -> &[WorkPerformedProperty];
290 fn take_work_performed(&mut self) -> Vec<WorkPerformedProperty>;
292}
293impl EventTrait for Event {
294 fn get_about(&self) -> &[AboutProperty] {
295 self.r#about.as_slice()
296 }
297 fn take_about(&mut self) -> Vec<AboutProperty> {
298 std::mem::take(&mut self.r#about)
299 }
300 fn get_actor(&self) -> &[ActorProperty] {
301 self.r#actor.as_slice()
302 }
303 fn take_actor(&mut self) -> Vec<ActorProperty> {
304 std::mem::take(&mut self.r#actor)
305 }
306 fn get_aggregate_rating(&self) -> &[AggregateRatingProperty] {
307 self.r#aggregate_rating.as_slice()
308 }
309 fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty> {
310 std::mem::take(&mut self.r#aggregate_rating)
311 }
312 fn get_attendee(&self) -> &[AttendeeProperty] {
313 self.r#attendee.as_slice()
314 }
315 fn take_attendee(&mut self) -> Vec<AttendeeProperty> {
316 std::mem::take(&mut self.r#attendee)
317 }
318 fn get_attendees(&self) -> &[AttendeesProperty] {
319 self.r#attendees.as_slice()
320 }
321 fn take_attendees(&mut self) -> Vec<AttendeesProperty> {
322 std::mem::take(&mut self.r#attendees)
323 }
324 fn get_audience(&self) -> &[AudienceProperty] {
325 self.r#audience.as_slice()
326 }
327 fn take_audience(&mut self) -> Vec<AudienceProperty> {
328 std::mem::take(&mut self.r#audience)
329 }
330 fn get_composer(&self) -> &[ComposerProperty] {
331 self.r#composer.as_slice()
332 }
333 fn take_composer(&mut self) -> Vec<ComposerProperty> {
334 std::mem::take(&mut self.r#composer)
335 }
336 fn get_contributor(&self) -> &[ContributorProperty] {
337 self.r#contributor.as_slice()
338 }
339 fn take_contributor(&mut self) -> Vec<ContributorProperty> {
340 std::mem::take(&mut self.r#contributor)
341 }
342 fn get_director(&self) -> &[DirectorProperty] {
343 self.r#director.as_slice()
344 }
345 fn take_director(&mut self) -> Vec<DirectorProperty> {
346 std::mem::take(&mut self.r#director)
347 }
348 fn get_door_time(&self) -> &[DoorTimeProperty] {
349 self.r#door_time.as_slice()
350 }
351 fn take_door_time(&mut self) -> Vec<DoorTimeProperty> {
352 std::mem::take(&mut self.r#door_time)
353 }
354 fn get_duration(&self) -> &[DurationProperty] {
355 self.r#duration.as_slice()
356 }
357 fn take_duration(&mut self) -> Vec<DurationProperty> {
358 std::mem::take(&mut self.r#duration)
359 }
360 fn get_end_date(&self) -> &[EndDateProperty] {
361 self.r#end_date.as_slice()
362 }
363 fn take_end_date(&mut self) -> Vec<EndDateProperty> {
364 std::mem::take(&mut self.r#end_date)
365 }
366 fn get_event_attendance_mode(&self) -> &[EventAttendanceModeProperty] {
367 self.r#event_attendance_mode.as_slice()
368 }
369 fn take_event_attendance_mode(&mut self) -> Vec<EventAttendanceModeProperty> {
370 std::mem::take(&mut self.r#event_attendance_mode)
371 }
372 fn get_event_schedule(&self) -> &[EventScheduleProperty] {
373 self.r#event_schedule.as_slice()
374 }
375 fn take_event_schedule(&mut self) -> Vec<EventScheduleProperty> {
376 std::mem::take(&mut self.r#event_schedule)
377 }
378 fn get_event_status(&self) -> &[EventStatusProperty] {
379 self.r#event_status.as_slice()
380 }
381 fn take_event_status(&mut self) -> Vec<EventStatusProperty> {
382 std::mem::take(&mut self.r#event_status)
383 }
384 fn get_funder(&self) -> &[FunderProperty] {
385 self.r#funder.as_slice()
386 }
387 fn take_funder(&mut self) -> Vec<FunderProperty> {
388 std::mem::take(&mut self.r#funder)
389 }
390 fn get_funding(&self) -> &[FundingProperty] {
391 self.r#funding.as_slice()
392 }
393 fn take_funding(&mut self) -> Vec<FundingProperty> {
394 std::mem::take(&mut self.r#funding)
395 }
396 fn get_in_language(&self) -> &[InLanguageProperty] {
397 self.r#in_language.as_slice()
398 }
399 fn take_in_language(&mut self) -> Vec<InLanguageProperty> {
400 std::mem::take(&mut self.r#in_language)
401 }
402 fn get_is_accessible_for_free(&self) -> &[IsAccessibleForFreeProperty] {
403 self.r#is_accessible_for_free.as_slice()
404 }
405 fn take_is_accessible_for_free(&mut self) -> Vec<IsAccessibleForFreeProperty> {
406 std::mem::take(&mut self.r#is_accessible_for_free)
407 }
408 fn get_keywords(&self) -> &[KeywordsProperty] {
409 self.r#keywords.as_slice()
410 }
411 fn take_keywords(&mut self) -> Vec<KeywordsProperty> {
412 std::mem::take(&mut self.r#keywords)
413 }
414 fn get_location(&self) -> &[LocationProperty] {
415 self.r#location.as_slice()
416 }
417 fn take_location(&mut self) -> Vec<LocationProperty> {
418 std::mem::take(&mut self.r#location)
419 }
420 fn get_maximum_attendee_capacity(&self) -> &[MaximumAttendeeCapacityProperty] {
421 self.r#maximum_attendee_capacity.as_slice()
422 }
423 fn take_maximum_attendee_capacity(&mut self) -> Vec<MaximumAttendeeCapacityProperty> {
424 std::mem::take(&mut self.r#maximum_attendee_capacity)
425 }
426 fn get_maximum_physical_attendee_capacity(&self) -> &[MaximumPhysicalAttendeeCapacityProperty] {
427 self.r#maximum_physical_attendee_capacity.as_slice()
428 }
429 fn take_maximum_physical_attendee_capacity(
430 &mut self,
431 ) -> Vec<MaximumPhysicalAttendeeCapacityProperty> {
432 std::mem::take(&mut self.r#maximum_physical_attendee_capacity)
433 }
434 fn get_maximum_virtual_attendee_capacity(&self) -> &[MaximumVirtualAttendeeCapacityProperty] {
435 self.r#maximum_virtual_attendee_capacity.as_slice()
436 }
437 fn take_maximum_virtual_attendee_capacity(
438 &mut self,
439 ) -> Vec<MaximumVirtualAttendeeCapacityProperty> {
440 std::mem::take(&mut self.r#maximum_virtual_attendee_capacity)
441 }
442 fn get_offers(&self) -> &[OffersProperty] {
443 self.r#offers.as_slice()
444 }
445 fn take_offers(&mut self) -> Vec<OffersProperty> {
446 std::mem::take(&mut self.r#offers)
447 }
448 fn get_organizer(&self) -> &[OrganizerProperty] {
449 self.r#organizer.as_slice()
450 }
451 fn take_organizer(&mut self) -> Vec<OrganizerProperty> {
452 std::mem::take(&mut self.r#organizer)
453 }
454 fn get_performer(&self) -> &[PerformerProperty] {
455 self.r#performer.as_slice()
456 }
457 fn take_performer(&mut self) -> Vec<PerformerProperty> {
458 std::mem::take(&mut self.r#performer)
459 }
460 fn get_performers(&self) -> &[PerformersProperty] {
461 self.r#performers.as_slice()
462 }
463 fn take_performers(&mut self) -> Vec<PerformersProperty> {
464 std::mem::take(&mut self.r#performers)
465 }
466 fn get_previous_start_date(&self) -> &[PreviousStartDateProperty] {
467 self.r#previous_start_date.as_slice()
468 }
469 fn take_previous_start_date(&mut self) -> Vec<PreviousStartDateProperty> {
470 std::mem::take(&mut self.r#previous_start_date)
471 }
472 fn get_recorded_in(&self) -> &[RecordedInProperty] {
473 self.r#recorded_in.as_slice()
474 }
475 fn take_recorded_in(&mut self) -> Vec<RecordedInProperty> {
476 std::mem::take(&mut self.r#recorded_in)
477 }
478 fn get_remaining_attendee_capacity(&self) -> &[RemainingAttendeeCapacityProperty] {
479 self.r#remaining_attendee_capacity.as_slice()
480 }
481 fn take_remaining_attendee_capacity(&mut self) -> Vec<RemainingAttendeeCapacityProperty> {
482 std::mem::take(&mut self.r#remaining_attendee_capacity)
483 }
484 fn get_review(&self) -> &[ReviewProperty] {
485 self.r#review.as_slice()
486 }
487 fn take_review(&mut self) -> Vec<ReviewProperty> {
488 std::mem::take(&mut self.r#review)
489 }
490 fn get_sponsor(&self) -> &[SponsorProperty] {
491 self.r#sponsor.as_slice()
492 }
493 fn take_sponsor(&mut self) -> Vec<SponsorProperty> {
494 std::mem::take(&mut self.r#sponsor)
495 }
496 fn get_start_date(&self) -> &[StartDateProperty] {
497 self.r#start_date.as_slice()
498 }
499 fn take_start_date(&mut self) -> Vec<StartDateProperty> {
500 std::mem::take(&mut self.r#start_date)
501 }
502 fn get_sub_event(&self) -> &[SubEventProperty] {
503 self.r#sub_event.as_slice()
504 }
505 fn take_sub_event(&mut self) -> Vec<SubEventProperty> {
506 std::mem::take(&mut self.r#sub_event)
507 }
508 fn get_sub_events(&self) -> &[SubEventsProperty] {
509 self.r#sub_events.as_slice()
510 }
511 fn take_sub_events(&mut self) -> Vec<SubEventsProperty> {
512 std::mem::take(&mut self.r#sub_events)
513 }
514 fn get_super_event(&self) -> &[SuperEventProperty] {
515 self.r#super_event.as_slice()
516 }
517 fn take_super_event(&mut self) -> Vec<SuperEventProperty> {
518 std::mem::take(&mut self.r#super_event)
519 }
520 fn get_translator(&self) -> &[TranslatorProperty] {
521 self.r#translator.as_slice()
522 }
523 fn take_translator(&mut self) -> Vec<TranslatorProperty> {
524 std::mem::take(&mut self.r#translator)
525 }
526 fn get_typical_age_range(&self) -> &[TypicalAgeRangeProperty] {
527 self.r#typical_age_range.as_slice()
528 }
529 fn take_typical_age_range(&mut self) -> Vec<TypicalAgeRangeProperty> {
530 std::mem::take(&mut self.r#typical_age_range)
531 }
532 fn get_work_featured(&self) -> &[WorkFeaturedProperty] {
533 self.r#work_featured.as_slice()
534 }
535 fn take_work_featured(&mut self) -> Vec<WorkFeaturedProperty> {
536 std::mem::take(&mut self.r#work_featured)
537 }
538 fn get_work_performed(&self) -> &[WorkPerformedProperty] {
539 self.r#work_performed.as_slice()
540 }
541 fn take_work_performed(&mut self) -> Vec<WorkPerformedProperty> {
542 std::mem::take(&mut self.r#work_performed)
543 }
544}
545impl ThingTrait for Event {
546 fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
547 self.r#additional_type.as_slice()
548 }
549 fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
550 std::mem::take(&mut self.r#additional_type)
551 }
552 fn get_alternate_name(&self) -> &[AlternateNameProperty] {
553 self.r#alternate_name.as_slice()
554 }
555 fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
556 std::mem::take(&mut self.r#alternate_name)
557 }
558 fn get_description(&self) -> &[DescriptionProperty] {
559 self.r#description.as_slice()
560 }
561 fn take_description(&mut self) -> Vec<DescriptionProperty> {
562 std::mem::take(&mut self.r#description)
563 }
564 fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
565 self.r#disambiguating_description.as_slice()
566 }
567 fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
568 std::mem::take(&mut self.r#disambiguating_description)
569 }
570 fn get_identifier(&self) -> &[IdentifierProperty] {
571 self.r#identifier.as_slice()
572 }
573 fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
574 std::mem::take(&mut self.r#identifier)
575 }
576 fn get_image(&self) -> &[ImageProperty] {
577 self.r#image.as_slice()
578 }
579 fn take_image(&mut self) -> Vec<ImageProperty> {
580 std::mem::take(&mut self.r#image)
581 }
582 fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
583 self.r#main_entity_of_page.as_slice()
584 }
585 fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
586 std::mem::take(&mut self.r#main_entity_of_page)
587 }
588 fn get_name(&self) -> &[NameProperty] {
589 self.r#name.as_slice()
590 }
591 fn take_name(&mut self) -> Vec<NameProperty> {
592 std::mem::take(&mut self.r#name)
593 }
594 fn get_potential_action(&self) -> &[PotentialActionProperty] {
595 self.r#potential_action.as_slice()
596 }
597 fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
598 std::mem::take(&mut self.r#potential_action)
599 }
600 fn get_same_as(&self) -> &[SameAsProperty] {
601 self.r#same_as.as_slice()
602 }
603 fn take_same_as(&mut self) -> Vec<SameAsProperty> {
604 std::mem::take(&mut self.r#same_as)
605 }
606 fn get_subject_of(&self) -> &[SubjectOfProperty] {
607 self.r#subject_of.as_slice()
608 }
609 fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
610 std::mem::take(&mut self.r#subject_of)
611 }
612 fn get_url(&self) -> &[UrlProperty] {
613 self.r#url.as_slice()
614 }
615 fn take_url(&mut self) -> Vec<UrlProperty> {
616 std::mem::take(&mut self.r#url)
617 }
618}
619#[cfg(feature = "serde")]
620mod serde {
621 use std::{fmt, fmt::Formatter};
622
623 use ::serde::{
624 de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
625 };
626
627 use super::*;
628 impl Serialize for Event {
629 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
630 where
631 S: Serializer,
632 {
633 let len: usize = [
634 !Vec::is_empty(&self.r#about) as usize,
635 !Vec::is_empty(&self.r#actor) as usize,
636 !Vec::is_empty(&self.r#aggregate_rating) as usize,
637 !Vec::is_empty(&self.r#attendee) as usize,
638 !Vec::is_empty(&self.r#attendees) as usize,
639 !Vec::is_empty(&self.r#audience) as usize,
640 !Vec::is_empty(&self.r#composer) as usize,
641 !Vec::is_empty(&self.r#contributor) as usize,
642 !Vec::is_empty(&self.r#director) as usize,
643 !Vec::is_empty(&self.r#door_time) as usize,
644 !Vec::is_empty(&self.r#duration) as usize,
645 !Vec::is_empty(&self.r#end_date) as usize,
646 !Vec::is_empty(&self.r#event_attendance_mode) as usize,
647 !Vec::is_empty(&self.r#event_schedule) as usize,
648 !Vec::is_empty(&self.r#event_status) as usize,
649 !Vec::is_empty(&self.r#funder) as usize,
650 !Vec::is_empty(&self.r#funding) as usize,
651 !Vec::is_empty(&self.r#in_language) as usize,
652 !Vec::is_empty(&self.r#is_accessible_for_free) as usize,
653 !Vec::is_empty(&self.r#keywords) as usize,
654 !Vec::is_empty(&self.r#location) as usize,
655 !Vec::is_empty(&self.r#maximum_attendee_capacity) as usize,
656 !Vec::is_empty(&self.r#maximum_physical_attendee_capacity) as usize,
657 !Vec::is_empty(&self.r#maximum_virtual_attendee_capacity) as usize,
658 !Vec::is_empty(&self.r#offers) as usize,
659 !Vec::is_empty(&self.r#organizer) as usize,
660 !Vec::is_empty(&self.r#performer) as usize,
661 !Vec::is_empty(&self.r#performers) as usize,
662 !Vec::is_empty(&self.r#previous_start_date) as usize,
663 !Vec::is_empty(&self.r#recorded_in) as usize,
664 !Vec::is_empty(&self.r#remaining_attendee_capacity) as usize,
665 !Vec::is_empty(&self.r#review) as usize,
666 !Vec::is_empty(&self.r#sponsor) as usize,
667 !Vec::is_empty(&self.r#start_date) as usize,
668 !Vec::is_empty(&self.r#sub_event) as usize,
669 !Vec::is_empty(&self.r#sub_events) as usize,
670 !Vec::is_empty(&self.r#super_event) as usize,
671 !Vec::is_empty(&self.r#translator) as usize,
672 !Vec::is_empty(&self.r#typical_age_range) as usize,
673 !Vec::is_empty(&self.r#work_featured) as usize,
674 !Vec::is_empty(&self.r#work_performed) as usize,
675 !Vec::is_empty(&self.r#additional_type) as usize,
676 !Vec::is_empty(&self.r#alternate_name) as usize,
677 !Vec::is_empty(&self.r#description) as usize,
678 !Vec::is_empty(&self.r#disambiguating_description) as usize,
679 !Vec::is_empty(&self.r#identifier) as usize,
680 !Vec::is_empty(&self.r#image) as usize,
681 !Vec::is_empty(&self.r#main_entity_of_page) as usize,
682 !Vec::is_empty(&self.r#name) as usize,
683 !Vec::is_empty(&self.r#potential_action) as usize,
684 !Vec::is_empty(&self.r#same_as) as usize,
685 !Vec::is_empty(&self.r#subject_of) as usize,
686 !Vec::is_empty(&self.r#url) as usize,
687 ]
688 .iter()
689 .sum();
690 let mut serialize_struct = Serializer::serialize_struct(serializer, "Event", len)?;
691 if !Vec::is_empty(&self.r#about) {
692 serialize_struct.serialize_field("about", {
693 struct SerializeWith<'a>(&'a Vec<AboutProperty>);
694 impl<'a> Serialize for SerializeWith<'a> {
695 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
696 where
697 S: Serializer,
698 {
699 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
700 self.0, serializer,
701 )
702 }
703 }
704 &SerializeWith(&self.r#about)
705 })?;
706 } else {
707 serialize_struct.skip_field("about")?;
708 }
709 if !Vec::is_empty(&self.r#actor) {
710 serialize_struct.serialize_field("actor", {
711 struct SerializeWith<'a>(&'a Vec<ActorProperty>);
712 impl<'a> Serialize for SerializeWith<'a> {
713 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
714 where
715 S: Serializer,
716 {
717 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
718 self.0, serializer,
719 )
720 }
721 }
722 &SerializeWith(&self.r#actor)
723 })?;
724 } else {
725 serialize_struct.skip_field("actor")?;
726 }
727 if !Vec::is_empty(&self.r#aggregate_rating) {
728 serialize_struct.serialize_field("aggregateRating", {
729 struct SerializeWith<'a>(&'a Vec<AggregateRatingProperty>);
730 impl<'a> Serialize for SerializeWith<'a> {
731 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
732 where
733 S: Serializer,
734 {
735 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
736 self.0, serializer,
737 )
738 }
739 }
740 &SerializeWith(&self.r#aggregate_rating)
741 })?;
742 } else {
743 serialize_struct.skip_field("aggregateRating")?;
744 }
745 if !Vec::is_empty(&self.r#attendee) {
746 serialize_struct.serialize_field("attendee", {
747 struct SerializeWith<'a>(&'a Vec<AttendeeProperty>);
748 impl<'a> Serialize for SerializeWith<'a> {
749 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
750 where
751 S: Serializer,
752 {
753 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
754 self.0, serializer,
755 )
756 }
757 }
758 &SerializeWith(&self.r#attendee)
759 })?;
760 } else {
761 serialize_struct.skip_field("attendee")?;
762 }
763 if !Vec::is_empty(&self.r#attendees) {
764 serialize_struct.serialize_field("attendees", {
765 struct SerializeWith<'a>(&'a Vec<AttendeesProperty>);
766 impl<'a> Serialize for SerializeWith<'a> {
767 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
768 where
769 S: Serializer,
770 {
771 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
772 self.0, serializer,
773 )
774 }
775 }
776 &SerializeWith(&self.r#attendees)
777 })?;
778 } else {
779 serialize_struct.skip_field("attendees")?;
780 }
781 if !Vec::is_empty(&self.r#audience) {
782 serialize_struct.serialize_field("audience", {
783 struct SerializeWith<'a>(&'a Vec<AudienceProperty>);
784 impl<'a> Serialize for SerializeWith<'a> {
785 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
786 where
787 S: Serializer,
788 {
789 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
790 self.0, serializer,
791 )
792 }
793 }
794 &SerializeWith(&self.r#audience)
795 })?;
796 } else {
797 serialize_struct.skip_field("audience")?;
798 }
799 if !Vec::is_empty(&self.r#composer) {
800 serialize_struct.serialize_field("composer", {
801 struct SerializeWith<'a>(&'a Vec<ComposerProperty>);
802 impl<'a> Serialize for SerializeWith<'a> {
803 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
804 where
805 S: Serializer,
806 {
807 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
808 self.0, serializer,
809 )
810 }
811 }
812 &SerializeWith(&self.r#composer)
813 })?;
814 } else {
815 serialize_struct.skip_field("composer")?;
816 }
817 if !Vec::is_empty(&self.r#contributor) {
818 serialize_struct.serialize_field("contributor", {
819 struct SerializeWith<'a>(&'a Vec<ContributorProperty>);
820 impl<'a> Serialize for SerializeWith<'a> {
821 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
822 where
823 S: Serializer,
824 {
825 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
826 self.0, serializer,
827 )
828 }
829 }
830 &SerializeWith(&self.r#contributor)
831 })?;
832 } else {
833 serialize_struct.skip_field("contributor")?;
834 }
835 if !Vec::is_empty(&self.r#director) {
836 serialize_struct.serialize_field("director", {
837 struct SerializeWith<'a>(&'a Vec<DirectorProperty>);
838 impl<'a> Serialize for SerializeWith<'a> {
839 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
840 where
841 S: Serializer,
842 {
843 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
844 self.0, serializer,
845 )
846 }
847 }
848 &SerializeWith(&self.r#director)
849 })?;
850 } else {
851 serialize_struct.skip_field("director")?;
852 }
853 if !Vec::is_empty(&self.r#door_time) {
854 serialize_struct.serialize_field("doorTime", {
855 struct SerializeWith<'a>(&'a Vec<DoorTimeProperty>);
856 impl<'a> Serialize for SerializeWith<'a> {
857 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
858 where
859 S: Serializer,
860 {
861 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
862 self.0, serializer,
863 )
864 }
865 }
866 &SerializeWith(&self.r#door_time)
867 })?;
868 } else {
869 serialize_struct.skip_field("doorTime")?;
870 }
871 if !Vec::is_empty(&self.r#duration) {
872 serialize_struct.serialize_field("duration", {
873 struct SerializeWith<'a>(&'a Vec<DurationProperty>);
874 impl<'a> Serialize for SerializeWith<'a> {
875 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
876 where
877 S: Serializer,
878 {
879 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
880 self.0, serializer,
881 )
882 }
883 }
884 &SerializeWith(&self.r#duration)
885 })?;
886 } else {
887 serialize_struct.skip_field("duration")?;
888 }
889 if !Vec::is_empty(&self.r#end_date) {
890 serialize_struct.serialize_field("endDate", {
891 struct SerializeWith<'a>(&'a Vec<EndDateProperty>);
892 impl<'a> Serialize for SerializeWith<'a> {
893 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
894 where
895 S: Serializer,
896 {
897 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
898 self.0, serializer,
899 )
900 }
901 }
902 &SerializeWith(&self.r#end_date)
903 })?;
904 } else {
905 serialize_struct.skip_field("endDate")?;
906 }
907 if !Vec::is_empty(&self.r#event_attendance_mode) {
908 serialize_struct.serialize_field("eventAttendanceMode", {
909 struct SerializeWith<'a>(&'a Vec<EventAttendanceModeProperty>);
910 impl<'a> Serialize for SerializeWith<'a> {
911 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
912 where
913 S: Serializer,
914 {
915 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
916 self.0, serializer,
917 )
918 }
919 }
920 &SerializeWith(&self.r#event_attendance_mode)
921 })?;
922 } else {
923 serialize_struct.skip_field("eventAttendanceMode")?;
924 }
925 if !Vec::is_empty(&self.r#event_schedule) {
926 serialize_struct.serialize_field("eventSchedule", {
927 struct SerializeWith<'a>(&'a Vec<EventScheduleProperty>);
928 impl<'a> Serialize for SerializeWith<'a> {
929 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
930 where
931 S: Serializer,
932 {
933 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
934 self.0, serializer,
935 )
936 }
937 }
938 &SerializeWith(&self.r#event_schedule)
939 })?;
940 } else {
941 serialize_struct.skip_field("eventSchedule")?;
942 }
943 if !Vec::is_empty(&self.r#event_status) {
944 serialize_struct.serialize_field("eventStatus", {
945 struct SerializeWith<'a>(&'a Vec<EventStatusProperty>);
946 impl<'a> Serialize for SerializeWith<'a> {
947 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
948 where
949 S: Serializer,
950 {
951 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
952 self.0, serializer,
953 )
954 }
955 }
956 &SerializeWith(&self.r#event_status)
957 })?;
958 } else {
959 serialize_struct.skip_field("eventStatus")?;
960 }
961 if !Vec::is_empty(&self.r#funder) {
962 serialize_struct.serialize_field("funder", {
963 struct SerializeWith<'a>(&'a Vec<FunderProperty>);
964 impl<'a> Serialize for SerializeWith<'a> {
965 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
966 where
967 S: Serializer,
968 {
969 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
970 self.0, serializer,
971 )
972 }
973 }
974 &SerializeWith(&self.r#funder)
975 })?;
976 } else {
977 serialize_struct.skip_field("funder")?;
978 }
979 if !Vec::is_empty(&self.r#funding) {
980 serialize_struct.serialize_field("funding", {
981 struct SerializeWith<'a>(&'a Vec<FundingProperty>);
982 impl<'a> Serialize for SerializeWith<'a> {
983 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
984 where
985 S: Serializer,
986 {
987 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
988 self.0, serializer,
989 )
990 }
991 }
992 &SerializeWith(&self.r#funding)
993 })?;
994 } else {
995 serialize_struct.skip_field("funding")?;
996 }
997 if !Vec::is_empty(&self.r#in_language) {
998 serialize_struct.serialize_field("inLanguage", {
999 struct SerializeWith<'a>(&'a Vec<InLanguageProperty>);
1000 impl<'a> Serialize for SerializeWith<'a> {
1001 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1002 where
1003 S: Serializer,
1004 {
1005 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1006 self.0, serializer,
1007 )
1008 }
1009 }
1010 &SerializeWith(&self.r#in_language)
1011 })?;
1012 } else {
1013 serialize_struct.skip_field("inLanguage")?;
1014 }
1015 if !Vec::is_empty(&self.r#is_accessible_for_free) {
1016 serialize_struct.serialize_field("isAccessibleForFree", {
1017 struct SerializeWith<'a>(&'a Vec<IsAccessibleForFreeProperty>);
1018 impl<'a> Serialize for SerializeWith<'a> {
1019 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1020 where
1021 S: Serializer,
1022 {
1023 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1024 self.0, serializer,
1025 )
1026 }
1027 }
1028 &SerializeWith(&self.r#is_accessible_for_free)
1029 })?;
1030 } else {
1031 serialize_struct.skip_field("isAccessibleForFree")?;
1032 }
1033 if !Vec::is_empty(&self.r#keywords) {
1034 serialize_struct.serialize_field("keywords", {
1035 struct SerializeWith<'a>(&'a Vec<KeywordsProperty>);
1036 impl<'a> Serialize for SerializeWith<'a> {
1037 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1038 where
1039 S: Serializer,
1040 {
1041 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1042 self.0, serializer,
1043 )
1044 }
1045 }
1046 &SerializeWith(&self.r#keywords)
1047 })?;
1048 } else {
1049 serialize_struct.skip_field("keywords")?;
1050 }
1051 if !Vec::is_empty(&self.r#location) {
1052 serialize_struct.serialize_field("location", {
1053 struct SerializeWith<'a>(&'a Vec<LocationProperty>);
1054 impl<'a> Serialize for SerializeWith<'a> {
1055 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1056 where
1057 S: Serializer,
1058 {
1059 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1060 self.0, serializer,
1061 )
1062 }
1063 }
1064 &SerializeWith(&self.r#location)
1065 })?;
1066 } else {
1067 serialize_struct.skip_field("location")?;
1068 }
1069 if !Vec::is_empty(&self.r#maximum_attendee_capacity) {
1070 serialize_struct.serialize_field("maximumAttendeeCapacity", {
1071 struct SerializeWith<'a>(&'a Vec<MaximumAttendeeCapacityProperty>);
1072 impl<'a> Serialize for SerializeWith<'a> {
1073 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1074 where
1075 S: Serializer,
1076 {
1077 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1078 self.0, serializer,
1079 )
1080 }
1081 }
1082 &SerializeWith(&self.r#maximum_attendee_capacity)
1083 })?;
1084 } else {
1085 serialize_struct.skip_field("maximumAttendeeCapacity")?;
1086 }
1087 if !Vec::is_empty(&self.r#maximum_physical_attendee_capacity) {
1088 serialize_struct.serialize_field("maximumPhysicalAttendeeCapacity", {
1089 struct SerializeWith<'a>(&'a Vec<MaximumPhysicalAttendeeCapacityProperty>);
1090 impl<'a> Serialize for SerializeWith<'a> {
1091 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1092 where
1093 S: Serializer,
1094 {
1095 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1096 self.0, serializer,
1097 )
1098 }
1099 }
1100 &SerializeWith(&self.r#maximum_physical_attendee_capacity)
1101 })?;
1102 } else {
1103 serialize_struct.skip_field("maximumPhysicalAttendeeCapacity")?;
1104 }
1105 if !Vec::is_empty(&self.r#maximum_virtual_attendee_capacity) {
1106 serialize_struct.serialize_field("maximumVirtualAttendeeCapacity", {
1107 struct SerializeWith<'a>(&'a Vec<MaximumVirtualAttendeeCapacityProperty>);
1108 impl<'a> Serialize for SerializeWith<'a> {
1109 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1110 where
1111 S: Serializer,
1112 {
1113 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1114 self.0, serializer,
1115 )
1116 }
1117 }
1118 &SerializeWith(&self.r#maximum_virtual_attendee_capacity)
1119 })?;
1120 } else {
1121 serialize_struct.skip_field("maximumVirtualAttendeeCapacity")?;
1122 }
1123 if !Vec::is_empty(&self.r#offers) {
1124 serialize_struct.serialize_field("offers", {
1125 struct SerializeWith<'a>(&'a Vec<OffersProperty>);
1126 impl<'a> Serialize for SerializeWith<'a> {
1127 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1128 where
1129 S: Serializer,
1130 {
1131 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1132 self.0, serializer,
1133 )
1134 }
1135 }
1136 &SerializeWith(&self.r#offers)
1137 })?;
1138 } else {
1139 serialize_struct.skip_field("offers")?;
1140 }
1141 if !Vec::is_empty(&self.r#organizer) {
1142 serialize_struct.serialize_field("organizer", {
1143 struct SerializeWith<'a>(&'a Vec<OrganizerProperty>);
1144 impl<'a> Serialize for SerializeWith<'a> {
1145 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1146 where
1147 S: Serializer,
1148 {
1149 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1150 self.0, serializer,
1151 )
1152 }
1153 }
1154 &SerializeWith(&self.r#organizer)
1155 })?;
1156 } else {
1157 serialize_struct.skip_field("organizer")?;
1158 }
1159 if !Vec::is_empty(&self.r#performer) {
1160 serialize_struct.serialize_field("performer", {
1161 struct SerializeWith<'a>(&'a Vec<PerformerProperty>);
1162 impl<'a> Serialize for SerializeWith<'a> {
1163 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1164 where
1165 S: Serializer,
1166 {
1167 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1168 self.0, serializer,
1169 )
1170 }
1171 }
1172 &SerializeWith(&self.r#performer)
1173 })?;
1174 } else {
1175 serialize_struct.skip_field("performer")?;
1176 }
1177 if !Vec::is_empty(&self.r#performers) {
1178 serialize_struct.serialize_field("performers", {
1179 struct SerializeWith<'a>(&'a Vec<PerformersProperty>);
1180 impl<'a> Serialize for SerializeWith<'a> {
1181 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1182 where
1183 S: Serializer,
1184 {
1185 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1186 self.0, serializer,
1187 )
1188 }
1189 }
1190 &SerializeWith(&self.r#performers)
1191 })?;
1192 } else {
1193 serialize_struct.skip_field("performers")?;
1194 }
1195 if !Vec::is_empty(&self.r#previous_start_date) {
1196 serialize_struct.serialize_field("previousStartDate", {
1197 struct SerializeWith<'a>(&'a Vec<PreviousStartDateProperty>);
1198 impl<'a> Serialize for SerializeWith<'a> {
1199 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1200 where
1201 S: Serializer,
1202 {
1203 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1204 self.0, serializer,
1205 )
1206 }
1207 }
1208 &SerializeWith(&self.r#previous_start_date)
1209 })?;
1210 } else {
1211 serialize_struct.skip_field("previousStartDate")?;
1212 }
1213 if !Vec::is_empty(&self.r#recorded_in) {
1214 serialize_struct.serialize_field("recordedIn", {
1215 struct SerializeWith<'a>(&'a Vec<RecordedInProperty>);
1216 impl<'a> Serialize for SerializeWith<'a> {
1217 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1218 where
1219 S: Serializer,
1220 {
1221 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1222 self.0, serializer,
1223 )
1224 }
1225 }
1226 &SerializeWith(&self.r#recorded_in)
1227 })?;
1228 } else {
1229 serialize_struct.skip_field("recordedIn")?;
1230 }
1231 if !Vec::is_empty(&self.r#remaining_attendee_capacity) {
1232 serialize_struct.serialize_field("remainingAttendeeCapacity", {
1233 struct SerializeWith<'a>(&'a Vec<RemainingAttendeeCapacityProperty>);
1234 impl<'a> Serialize for SerializeWith<'a> {
1235 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1236 where
1237 S: Serializer,
1238 {
1239 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1240 self.0, serializer,
1241 )
1242 }
1243 }
1244 &SerializeWith(&self.r#remaining_attendee_capacity)
1245 })?;
1246 } else {
1247 serialize_struct.skip_field("remainingAttendeeCapacity")?;
1248 }
1249 if !Vec::is_empty(&self.r#review) {
1250 serialize_struct.serialize_field("review", {
1251 struct SerializeWith<'a>(&'a Vec<ReviewProperty>);
1252 impl<'a> Serialize for SerializeWith<'a> {
1253 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1254 where
1255 S: Serializer,
1256 {
1257 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1258 self.0, serializer,
1259 )
1260 }
1261 }
1262 &SerializeWith(&self.r#review)
1263 })?;
1264 } else {
1265 serialize_struct.skip_field("review")?;
1266 }
1267 if !Vec::is_empty(&self.r#sponsor) {
1268 serialize_struct.serialize_field("sponsor", {
1269 struct SerializeWith<'a>(&'a Vec<SponsorProperty>);
1270 impl<'a> Serialize for SerializeWith<'a> {
1271 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1272 where
1273 S: Serializer,
1274 {
1275 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1276 self.0, serializer,
1277 )
1278 }
1279 }
1280 &SerializeWith(&self.r#sponsor)
1281 })?;
1282 } else {
1283 serialize_struct.skip_field("sponsor")?;
1284 }
1285 if !Vec::is_empty(&self.r#start_date) {
1286 serialize_struct.serialize_field("startDate", {
1287 struct SerializeWith<'a>(&'a Vec<StartDateProperty>);
1288 impl<'a> Serialize for SerializeWith<'a> {
1289 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1290 where
1291 S: Serializer,
1292 {
1293 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1294 self.0, serializer,
1295 )
1296 }
1297 }
1298 &SerializeWith(&self.r#start_date)
1299 })?;
1300 } else {
1301 serialize_struct.skip_field("startDate")?;
1302 }
1303 if !Vec::is_empty(&self.r#sub_event) {
1304 serialize_struct.serialize_field("subEvent", {
1305 struct SerializeWith<'a>(&'a Vec<SubEventProperty>);
1306 impl<'a> Serialize for SerializeWith<'a> {
1307 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1308 where
1309 S: Serializer,
1310 {
1311 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1312 self.0, serializer,
1313 )
1314 }
1315 }
1316 &SerializeWith(&self.r#sub_event)
1317 })?;
1318 } else {
1319 serialize_struct.skip_field("subEvent")?;
1320 }
1321 if !Vec::is_empty(&self.r#sub_events) {
1322 serialize_struct.serialize_field("subEvents", {
1323 struct SerializeWith<'a>(&'a Vec<SubEventsProperty>);
1324 impl<'a> Serialize for SerializeWith<'a> {
1325 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1326 where
1327 S: Serializer,
1328 {
1329 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1330 self.0, serializer,
1331 )
1332 }
1333 }
1334 &SerializeWith(&self.r#sub_events)
1335 })?;
1336 } else {
1337 serialize_struct.skip_field("subEvents")?;
1338 }
1339 if !Vec::is_empty(&self.r#super_event) {
1340 serialize_struct.serialize_field("superEvent", {
1341 struct SerializeWith<'a>(&'a Vec<SuperEventProperty>);
1342 impl<'a> Serialize for SerializeWith<'a> {
1343 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1344 where
1345 S: Serializer,
1346 {
1347 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1348 self.0, serializer,
1349 )
1350 }
1351 }
1352 &SerializeWith(&self.r#super_event)
1353 })?;
1354 } else {
1355 serialize_struct.skip_field("superEvent")?;
1356 }
1357 if !Vec::is_empty(&self.r#translator) {
1358 serialize_struct.serialize_field("translator", {
1359 struct SerializeWith<'a>(&'a Vec<TranslatorProperty>);
1360 impl<'a> Serialize for SerializeWith<'a> {
1361 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1362 where
1363 S: Serializer,
1364 {
1365 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1366 self.0, serializer,
1367 )
1368 }
1369 }
1370 &SerializeWith(&self.r#translator)
1371 })?;
1372 } else {
1373 serialize_struct.skip_field("translator")?;
1374 }
1375 if !Vec::is_empty(&self.r#typical_age_range) {
1376 serialize_struct.serialize_field("typicalAgeRange", {
1377 struct SerializeWith<'a>(&'a Vec<TypicalAgeRangeProperty>);
1378 impl<'a> Serialize for SerializeWith<'a> {
1379 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1380 where
1381 S: Serializer,
1382 {
1383 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1384 self.0, serializer,
1385 )
1386 }
1387 }
1388 &SerializeWith(&self.r#typical_age_range)
1389 })?;
1390 } else {
1391 serialize_struct.skip_field("typicalAgeRange")?;
1392 }
1393 if !Vec::is_empty(&self.r#work_featured) {
1394 serialize_struct.serialize_field("workFeatured", {
1395 struct SerializeWith<'a>(&'a Vec<WorkFeaturedProperty>);
1396 impl<'a> Serialize for SerializeWith<'a> {
1397 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1398 where
1399 S: Serializer,
1400 {
1401 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1402 self.0, serializer,
1403 )
1404 }
1405 }
1406 &SerializeWith(&self.r#work_featured)
1407 })?;
1408 } else {
1409 serialize_struct.skip_field("workFeatured")?;
1410 }
1411 if !Vec::is_empty(&self.r#work_performed) {
1412 serialize_struct.serialize_field("workPerformed", {
1413 struct SerializeWith<'a>(&'a Vec<WorkPerformedProperty>);
1414 impl<'a> Serialize for SerializeWith<'a> {
1415 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1416 where
1417 S: Serializer,
1418 {
1419 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1420 self.0, serializer,
1421 )
1422 }
1423 }
1424 &SerializeWith(&self.r#work_performed)
1425 })?;
1426 } else {
1427 serialize_struct.skip_field("workPerformed")?;
1428 }
1429 if !Vec::is_empty(&self.r#additional_type) {
1430 serialize_struct.serialize_field("additionalType", {
1431 struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
1432 impl<'a> Serialize for SerializeWith<'a> {
1433 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1434 where
1435 S: Serializer,
1436 {
1437 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1438 self.0, serializer,
1439 )
1440 }
1441 }
1442 &SerializeWith(&self.r#additional_type)
1443 })?;
1444 } else {
1445 serialize_struct.skip_field("additionalType")?;
1446 }
1447 if !Vec::is_empty(&self.r#alternate_name) {
1448 serialize_struct.serialize_field("alternateName", {
1449 struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
1450 impl<'a> Serialize for SerializeWith<'a> {
1451 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1452 where
1453 S: Serializer,
1454 {
1455 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1456 self.0, serializer,
1457 )
1458 }
1459 }
1460 &SerializeWith(&self.r#alternate_name)
1461 })?;
1462 } else {
1463 serialize_struct.skip_field("alternateName")?;
1464 }
1465 if !Vec::is_empty(&self.r#description) {
1466 serialize_struct.serialize_field("description", {
1467 struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
1468 impl<'a> Serialize for SerializeWith<'a> {
1469 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1470 where
1471 S: Serializer,
1472 {
1473 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1474 self.0, serializer,
1475 )
1476 }
1477 }
1478 &SerializeWith(&self.r#description)
1479 })?;
1480 } else {
1481 serialize_struct.skip_field("description")?;
1482 }
1483 if !Vec::is_empty(&self.r#disambiguating_description) {
1484 serialize_struct.serialize_field("disambiguatingDescription", {
1485 struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
1486 impl<'a> Serialize for SerializeWith<'a> {
1487 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1488 where
1489 S: Serializer,
1490 {
1491 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1492 self.0, serializer,
1493 )
1494 }
1495 }
1496 &SerializeWith(&self.r#disambiguating_description)
1497 })?;
1498 } else {
1499 serialize_struct.skip_field("disambiguatingDescription")?;
1500 }
1501 if !Vec::is_empty(&self.r#identifier) {
1502 serialize_struct.serialize_field("identifier", {
1503 struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
1504 impl<'a> Serialize for SerializeWith<'a> {
1505 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1506 where
1507 S: Serializer,
1508 {
1509 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1510 self.0, serializer,
1511 )
1512 }
1513 }
1514 &SerializeWith(&self.r#identifier)
1515 })?;
1516 } else {
1517 serialize_struct.skip_field("identifier")?;
1518 }
1519 if !Vec::is_empty(&self.r#image) {
1520 serialize_struct.serialize_field("image", {
1521 struct SerializeWith<'a>(&'a Vec<ImageProperty>);
1522 impl<'a> Serialize for SerializeWith<'a> {
1523 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1524 where
1525 S: Serializer,
1526 {
1527 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1528 self.0, serializer,
1529 )
1530 }
1531 }
1532 &SerializeWith(&self.r#image)
1533 })?;
1534 } else {
1535 serialize_struct.skip_field("image")?;
1536 }
1537 if !Vec::is_empty(&self.r#main_entity_of_page) {
1538 serialize_struct.serialize_field("mainEntityOfPage", {
1539 struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
1540 impl<'a> Serialize for SerializeWith<'a> {
1541 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1542 where
1543 S: Serializer,
1544 {
1545 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1546 self.0, serializer,
1547 )
1548 }
1549 }
1550 &SerializeWith(&self.r#main_entity_of_page)
1551 })?;
1552 } else {
1553 serialize_struct.skip_field("mainEntityOfPage")?;
1554 }
1555 if !Vec::is_empty(&self.r#name) {
1556 serialize_struct.serialize_field("name", {
1557 struct SerializeWith<'a>(&'a Vec<NameProperty>);
1558 impl<'a> Serialize for SerializeWith<'a> {
1559 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1560 where
1561 S: Serializer,
1562 {
1563 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1564 self.0, serializer,
1565 )
1566 }
1567 }
1568 &SerializeWith(&self.r#name)
1569 })?;
1570 } else {
1571 serialize_struct.skip_field("name")?;
1572 }
1573 if !Vec::is_empty(&self.r#potential_action) {
1574 serialize_struct.serialize_field("potentialAction", {
1575 struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
1576 impl<'a> Serialize for SerializeWith<'a> {
1577 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1578 where
1579 S: Serializer,
1580 {
1581 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1582 self.0, serializer,
1583 )
1584 }
1585 }
1586 &SerializeWith(&self.r#potential_action)
1587 })?;
1588 } else {
1589 serialize_struct.skip_field("potentialAction")?;
1590 }
1591 if !Vec::is_empty(&self.r#same_as) {
1592 serialize_struct.serialize_field("sameAs", {
1593 struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
1594 impl<'a> Serialize for SerializeWith<'a> {
1595 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1596 where
1597 S: Serializer,
1598 {
1599 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1600 self.0, serializer,
1601 )
1602 }
1603 }
1604 &SerializeWith(&self.r#same_as)
1605 })?;
1606 } else {
1607 serialize_struct.skip_field("sameAs")?;
1608 }
1609 if !Vec::is_empty(&self.r#subject_of) {
1610 serialize_struct.serialize_field("subjectOf", {
1611 struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
1612 impl<'a> Serialize for SerializeWith<'a> {
1613 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1614 where
1615 S: Serializer,
1616 {
1617 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1618 self.0, serializer,
1619 )
1620 }
1621 }
1622 &SerializeWith(&self.r#subject_of)
1623 })?;
1624 } else {
1625 serialize_struct.skip_field("subjectOf")?;
1626 }
1627 if !Vec::is_empty(&self.r#url) {
1628 serialize_struct.serialize_field("url", {
1629 struct SerializeWith<'a>(&'a Vec<UrlProperty>);
1630 impl<'a> Serialize for SerializeWith<'a> {
1631 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1632 where
1633 S: Serializer,
1634 {
1635 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1636 self.0, serializer,
1637 )
1638 }
1639 }
1640 &SerializeWith(&self.r#url)
1641 })?;
1642 } else {
1643 serialize_struct.skip_field("url")?;
1644 }
1645 serialize_struct.end()
1646 }
1647 }
1648 impl<'de> Deserialize<'de> for Event {
1649 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1650 where
1651 D: Deserializer<'de>,
1652 {
1653 enum Field {
1654 About,
1655 Actor,
1656 AggregateRating,
1657 Attendee,
1658 Attendees,
1659 Audience,
1660 Composer,
1661 Contributor,
1662 Director,
1663 DoorTime,
1664 Duration,
1665 EndDate,
1666 EventAttendanceMode,
1667 EventSchedule,
1668 EventStatus,
1669 Funder,
1670 Funding,
1671 InLanguage,
1672 IsAccessibleForFree,
1673 Keywords,
1674 Location,
1675 MaximumAttendeeCapacity,
1676 MaximumPhysicalAttendeeCapacity,
1677 MaximumVirtualAttendeeCapacity,
1678 Offers,
1679 Organizer,
1680 Performer,
1681 Performers,
1682 PreviousStartDate,
1683 RecordedIn,
1684 RemainingAttendeeCapacity,
1685 Review,
1686 Sponsor,
1687 StartDate,
1688 SubEvent,
1689 SubEvents,
1690 SuperEvent,
1691 Translator,
1692 TypicalAgeRange,
1693 WorkFeatured,
1694 WorkPerformed,
1695 AdditionalType,
1696 AlternateName,
1697 Description,
1698 DisambiguatingDescription,
1699 Identifier,
1700 Image,
1701 MainEntityOfPage,
1702 Name,
1703 PotentialAction,
1704 SameAs,
1705 SubjectOf,
1706 Url,
1707 Ignore,
1708 }
1709 struct FieldVisitor;
1710 impl<'de> Visitor<'de> for FieldVisitor {
1711 type Value = Field;
1712 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1713 formatter.write_str("field identifier")
1714 }
1715 fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1716 where
1717 E: de::Error,
1718 {
1719 match value {
1720 "about" => Ok(Field::About),
1721 "actor" => Ok(Field::Actor),
1722 "aggregateRating" => Ok(Field::AggregateRating),
1723 "attendee" => Ok(Field::Attendee),
1724 "attendees" => Ok(Field::Attendees),
1725 "audience" => Ok(Field::Audience),
1726 "composer" => Ok(Field::Composer),
1727 "contributor" => Ok(Field::Contributor),
1728 "director" => Ok(Field::Director),
1729 "doorTime" => Ok(Field::DoorTime),
1730 "duration" => Ok(Field::Duration),
1731 "endDate" => Ok(Field::EndDate),
1732 "eventAttendanceMode" => Ok(Field::EventAttendanceMode),
1733 "eventSchedule" => Ok(Field::EventSchedule),
1734 "eventStatus" => Ok(Field::EventStatus),
1735 "funder" => Ok(Field::Funder),
1736 "funding" => Ok(Field::Funding),
1737 "inLanguage" => Ok(Field::InLanguage),
1738 "isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
1739 "keywords" => Ok(Field::Keywords),
1740 "location" => Ok(Field::Location),
1741 "maximumAttendeeCapacity" => Ok(Field::MaximumAttendeeCapacity),
1742 "maximumPhysicalAttendeeCapacity" => {
1743 Ok(Field::MaximumPhysicalAttendeeCapacity)
1744 }
1745 "maximumVirtualAttendeeCapacity" => {
1746 Ok(Field::MaximumVirtualAttendeeCapacity)
1747 }
1748 "offers" => Ok(Field::Offers),
1749 "organizer" => Ok(Field::Organizer),
1750 "performer" => Ok(Field::Performer),
1751 "performers" => Ok(Field::Performers),
1752 "previousStartDate" => Ok(Field::PreviousStartDate),
1753 "recordedIn" => Ok(Field::RecordedIn),
1754 "remainingAttendeeCapacity" => Ok(Field::RemainingAttendeeCapacity),
1755 "review" => Ok(Field::Review),
1756 "sponsor" => Ok(Field::Sponsor),
1757 "startDate" => Ok(Field::StartDate),
1758 "subEvent" => Ok(Field::SubEvent),
1759 "subEvents" => Ok(Field::SubEvents),
1760 "superEvent" => Ok(Field::SuperEvent),
1761 "translator" => Ok(Field::Translator),
1762 "typicalAgeRange" => Ok(Field::TypicalAgeRange),
1763 "workFeatured" => Ok(Field::WorkFeatured),
1764 "workPerformed" => Ok(Field::WorkPerformed),
1765 "additionalType" => Ok(Field::AdditionalType),
1766 "alternateName" => Ok(Field::AlternateName),
1767 "description" => Ok(Field::Description),
1768 "disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1769 "identifier" => Ok(Field::Identifier),
1770 "image" => Ok(Field::Image),
1771 "mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1772 "name" => Ok(Field::Name),
1773 "potentialAction" => Ok(Field::PotentialAction),
1774 "sameAs" => Ok(Field::SameAs),
1775 "subjectOf" => Ok(Field::SubjectOf),
1776 "url" => Ok(Field::Url),
1777 "id" | "type" => Ok(Field::Ignore),
1778 _ => Err(de::Error::unknown_field(value, FIELDS)),
1779 }
1780 }
1781 fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
1782 where
1783 E: de::Error,
1784 {
1785 match value {
1786 b"about" => Ok(Field::About),
1787 b"actor" => Ok(Field::Actor),
1788 b"aggregateRating" => Ok(Field::AggregateRating),
1789 b"attendee" => Ok(Field::Attendee),
1790 b"attendees" => Ok(Field::Attendees),
1791 b"audience" => Ok(Field::Audience),
1792 b"composer" => Ok(Field::Composer),
1793 b"contributor" => Ok(Field::Contributor),
1794 b"director" => Ok(Field::Director),
1795 b"doorTime" => Ok(Field::DoorTime),
1796 b"duration" => Ok(Field::Duration),
1797 b"endDate" => Ok(Field::EndDate),
1798 b"eventAttendanceMode" => Ok(Field::EventAttendanceMode),
1799 b"eventSchedule" => Ok(Field::EventSchedule),
1800 b"eventStatus" => Ok(Field::EventStatus),
1801 b"funder" => Ok(Field::Funder),
1802 b"funding" => Ok(Field::Funding),
1803 b"inLanguage" => Ok(Field::InLanguage),
1804 b"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
1805 b"keywords" => Ok(Field::Keywords),
1806 b"location" => Ok(Field::Location),
1807 b"maximumAttendeeCapacity" => Ok(Field::MaximumAttendeeCapacity),
1808 b"maximumPhysicalAttendeeCapacity" => {
1809 Ok(Field::MaximumPhysicalAttendeeCapacity)
1810 }
1811 b"maximumVirtualAttendeeCapacity" => {
1812 Ok(Field::MaximumVirtualAttendeeCapacity)
1813 }
1814 b"offers" => Ok(Field::Offers),
1815 b"organizer" => Ok(Field::Organizer),
1816 b"performer" => Ok(Field::Performer),
1817 b"performers" => Ok(Field::Performers),
1818 b"previousStartDate" => Ok(Field::PreviousStartDate),
1819 b"recordedIn" => Ok(Field::RecordedIn),
1820 b"remainingAttendeeCapacity" => Ok(Field::RemainingAttendeeCapacity),
1821 b"review" => Ok(Field::Review),
1822 b"sponsor" => Ok(Field::Sponsor),
1823 b"startDate" => Ok(Field::StartDate),
1824 b"subEvent" => Ok(Field::SubEvent),
1825 b"subEvents" => Ok(Field::SubEvents),
1826 b"superEvent" => Ok(Field::SuperEvent),
1827 b"translator" => Ok(Field::Translator),
1828 b"typicalAgeRange" => Ok(Field::TypicalAgeRange),
1829 b"workFeatured" => Ok(Field::WorkFeatured),
1830 b"workPerformed" => Ok(Field::WorkPerformed),
1831 b"additionalType" => Ok(Field::AdditionalType),
1832 b"alternateName" => Ok(Field::AlternateName),
1833 b"description" => Ok(Field::Description),
1834 b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1835 b"identifier" => Ok(Field::Identifier),
1836 b"image" => Ok(Field::Image),
1837 b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1838 b"name" => Ok(Field::Name),
1839 b"potentialAction" => Ok(Field::PotentialAction),
1840 b"sameAs" => Ok(Field::SameAs),
1841 b"subjectOf" => Ok(Field::SubjectOf),
1842 b"url" => Ok(Field::Url),
1843 b"id" | b"type" => Ok(Field::Ignore),
1844 _ => {
1845 let value = &String::from_utf8_lossy(value);
1846 Err(de::Error::unknown_field(value, FIELDS))
1847 }
1848 }
1849 }
1850 }
1851 impl<'de> Deserialize<'de> for Field {
1852 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1853 where
1854 D: Deserializer<'de>,
1855 {
1856 deserializer.deserialize_identifier(FieldVisitor)
1857 }
1858 }
1859 struct ClassVisitor;
1860 impl<'de> Visitor<'de> for ClassVisitor {
1861 type Value = Event;
1862 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1863 formatter.write_str("schema.org schema Event")
1864 }
1865 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
1866 where
1867 A: de::MapAccess<'de>,
1868 {
1869 let mut r#about_property = None;
1870 let mut r#actor_property = None;
1871 let mut r#aggregate_rating_property = None;
1872 let mut r#attendee_property = None;
1873 let mut r#attendees_property = None;
1874 let mut r#audience_property = None;
1875 let mut r#composer_property = None;
1876 let mut r#contributor_property = None;
1877 let mut r#director_property = None;
1878 let mut r#door_time_property = None;
1879 let mut r#duration_property = None;
1880 let mut r#end_date_property = None;
1881 let mut r#event_attendance_mode_property = None;
1882 let mut r#event_schedule_property = None;
1883 let mut r#event_status_property = None;
1884 let mut r#funder_property = None;
1885 let mut r#funding_property = None;
1886 let mut r#in_language_property = None;
1887 let mut r#is_accessible_for_free_property = None;
1888 let mut r#keywords_property = None;
1889 let mut r#location_property = None;
1890 let mut r#maximum_attendee_capacity_property = None;
1891 let mut r#maximum_physical_attendee_capacity_property = None;
1892 let mut r#maximum_virtual_attendee_capacity_property = None;
1893 let mut r#offers_property = None;
1894 let mut r#organizer_property = None;
1895 let mut r#performer_property = None;
1896 let mut r#performers_property = None;
1897 let mut r#previous_start_date_property = None;
1898 let mut r#recorded_in_property = None;
1899 let mut r#remaining_attendee_capacity_property = None;
1900 let mut r#review_property = None;
1901 let mut r#sponsor_property = None;
1902 let mut r#start_date_property = None;
1903 let mut r#sub_event_property = None;
1904 let mut r#sub_events_property = None;
1905 let mut r#super_event_property = None;
1906 let mut r#translator_property = None;
1907 let mut r#typical_age_range_property = None;
1908 let mut r#work_featured_property = None;
1909 let mut r#work_performed_property = None;
1910 let mut r#additional_type_property = None;
1911 let mut r#alternate_name_property = None;
1912 let mut r#description_property = None;
1913 let mut r#disambiguating_description_property = None;
1914 let mut r#identifier_property = None;
1915 let mut r#image_property = None;
1916 let mut r#main_entity_of_page_property = None;
1917 let mut r#name_property = None;
1918 let mut r#potential_action_property = None;
1919 let mut r#same_as_property = None;
1920 let mut r#subject_of_property = None;
1921 let mut r#url_property = None;
1922 while let Some(key) = map.next_key::<Field>()? {
1923 match key {
1924 Field::About => {
1925 if r#about_property.is_some() {
1926 return Err(<A::Error as de::Error>::duplicate_field("about"));
1927 }
1928 r#about_property = Some({
1929 struct DeserializeWith(Vec<AboutProperty>);
1930 impl<'de> Deserialize<'de> for DeserializeWith {
1931 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1932 where
1933 D: Deserializer<'de>,
1934 {
1935 Ok(DeserializeWith(serde_with::As::<
1936 serde_with::OneOrMany<serde_with::Same>,
1937 >::deserialize(deserializer)?))
1938 }
1939 }
1940 match map.next_value::<DeserializeWith>() {
1941 Ok(deserialize_with) => deserialize_with.0,
1942 Err(err) => {
1943 return Err(err);
1944 }
1945 }
1946 });
1947 }
1948 Field::Actor => {
1949 if r#actor_property.is_some() {
1950 return Err(<A::Error as de::Error>::duplicate_field("actor"));
1951 }
1952 r#actor_property = Some({
1953 struct DeserializeWith(Vec<ActorProperty>);
1954 impl<'de> Deserialize<'de> for DeserializeWith {
1955 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1956 where
1957 D: Deserializer<'de>,
1958 {
1959 Ok(DeserializeWith(serde_with::As::<
1960 serde_with::OneOrMany<serde_with::Same>,
1961 >::deserialize(deserializer)?))
1962 }
1963 }
1964 match map.next_value::<DeserializeWith>() {
1965 Ok(deserialize_with) => deserialize_with.0,
1966 Err(err) => {
1967 return Err(err);
1968 }
1969 }
1970 });
1971 }
1972 Field::AggregateRating => {
1973 if r#aggregate_rating_property.is_some() {
1974 return Err(<A::Error as de::Error>::duplicate_field(
1975 "aggregateRating",
1976 ));
1977 }
1978 r#aggregate_rating_property = Some({
1979 struct DeserializeWith(Vec<AggregateRatingProperty>);
1980 impl<'de> Deserialize<'de> for DeserializeWith {
1981 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1982 where
1983 D: Deserializer<'de>,
1984 {
1985 Ok(DeserializeWith(serde_with::As::<
1986 serde_with::OneOrMany<serde_with::Same>,
1987 >::deserialize(deserializer)?))
1988 }
1989 }
1990 match map.next_value::<DeserializeWith>() {
1991 Ok(deserialize_with) => deserialize_with.0,
1992 Err(err) => {
1993 return Err(err);
1994 }
1995 }
1996 });
1997 }
1998 Field::Attendee => {
1999 if r#attendee_property.is_some() {
2000 return Err(<A::Error as de::Error>::duplicate_field(
2001 "attendee",
2002 ));
2003 }
2004 r#attendee_property = Some({
2005 struct DeserializeWith(Vec<AttendeeProperty>);
2006 impl<'de> Deserialize<'de> for DeserializeWith {
2007 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2008 where
2009 D: Deserializer<'de>,
2010 {
2011 Ok(DeserializeWith(serde_with::As::<
2012 serde_with::OneOrMany<serde_with::Same>,
2013 >::deserialize(deserializer)?))
2014 }
2015 }
2016 match map.next_value::<DeserializeWith>() {
2017 Ok(deserialize_with) => deserialize_with.0,
2018 Err(err) => {
2019 return Err(err);
2020 }
2021 }
2022 });
2023 }
2024 Field::Attendees => {
2025 if r#attendees_property.is_some() {
2026 return Err(<A::Error as de::Error>::duplicate_field(
2027 "attendees",
2028 ));
2029 }
2030 r#attendees_property = Some({
2031 struct DeserializeWith(Vec<AttendeesProperty>);
2032 impl<'de> Deserialize<'de> for DeserializeWith {
2033 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2034 where
2035 D: Deserializer<'de>,
2036 {
2037 Ok(DeserializeWith(serde_with::As::<
2038 serde_with::OneOrMany<serde_with::Same>,
2039 >::deserialize(deserializer)?))
2040 }
2041 }
2042 match map.next_value::<DeserializeWith>() {
2043 Ok(deserialize_with) => deserialize_with.0,
2044 Err(err) => {
2045 return Err(err);
2046 }
2047 }
2048 });
2049 }
2050 Field::Audience => {
2051 if r#audience_property.is_some() {
2052 return Err(<A::Error as de::Error>::duplicate_field(
2053 "audience",
2054 ));
2055 }
2056 r#audience_property = Some({
2057 struct DeserializeWith(Vec<AudienceProperty>);
2058 impl<'de> Deserialize<'de> for DeserializeWith {
2059 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2060 where
2061 D: Deserializer<'de>,
2062 {
2063 Ok(DeserializeWith(serde_with::As::<
2064 serde_with::OneOrMany<serde_with::Same>,
2065 >::deserialize(deserializer)?))
2066 }
2067 }
2068 match map.next_value::<DeserializeWith>() {
2069 Ok(deserialize_with) => deserialize_with.0,
2070 Err(err) => {
2071 return Err(err);
2072 }
2073 }
2074 });
2075 }
2076 Field::Composer => {
2077 if r#composer_property.is_some() {
2078 return Err(<A::Error as de::Error>::duplicate_field(
2079 "composer",
2080 ));
2081 }
2082 r#composer_property = Some({
2083 struct DeserializeWith(Vec<ComposerProperty>);
2084 impl<'de> Deserialize<'de> for DeserializeWith {
2085 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2086 where
2087 D: Deserializer<'de>,
2088 {
2089 Ok(DeserializeWith(serde_with::As::<
2090 serde_with::OneOrMany<serde_with::Same>,
2091 >::deserialize(deserializer)?))
2092 }
2093 }
2094 match map.next_value::<DeserializeWith>() {
2095 Ok(deserialize_with) => deserialize_with.0,
2096 Err(err) => {
2097 return Err(err);
2098 }
2099 }
2100 });
2101 }
2102 Field::Contributor => {
2103 if r#contributor_property.is_some() {
2104 return Err(<A::Error as de::Error>::duplicate_field(
2105 "contributor",
2106 ));
2107 }
2108 r#contributor_property = Some({
2109 struct DeserializeWith(Vec<ContributorProperty>);
2110 impl<'de> Deserialize<'de> for DeserializeWith {
2111 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2112 where
2113 D: Deserializer<'de>,
2114 {
2115 Ok(DeserializeWith(serde_with::As::<
2116 serde_with::OneOrMany<serde_with::Same>,
2117 >::deserialize(deserializer)?))
2118 }
2119 }
2120 match map.next_value::<DeserializeWith>() {
2121 Ok(deserialize_with) => deserialize_with.0,
2122 Err(err) => {
2123 return Err(err);
2124 }
2125 }
2126 });
2127 }
2128 Field::Director => {
2129 if r#director_property.is_some() {
2130 return Err(<A::Error as de::Error>::duplicate_field(
2131 "director",
2132 ));
2133 }
2134 r#director_property = Some({
2135 struct DeserializeWith(Vec<DirectorProperty>);
2136 impl<'de> Deserialize<'de> for DeserializeWith {
2137 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2138 where
2139 D: Deserializer<'de>,
2140 {
2141 Ok(DeserializeWith(serde_with::As::<
2142 serde_with::OneOrMany<serde_with::Same>,
2143 >::deserialize(deserializer)?))
2144 }
2145 }
2146 match map.next_value::<DeserializeWith>() {
2147 Ok(deserialize_with) => deserialize_with.0,
2148 Err(err) => {
2149 return Err(err);
2150 }
2151 }
2152 });
2153 }
2154 Field::DoorTime => {
2155 if r#door_time_property.is_some() {
2156 return Err(<A::Error as de::Error>::duplicate_field(
2157 "doorTime",
2158 ));
2159 }
2160 r#door_time_property = Some({
2161 struct DeserializeWith(Vec<DoorTimeProperty>);
2162 impl<'de> Deserialize<'de> for DeserializeWith {
2163 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2164 where
2165 D: Deserializer<'de>,
2166 {
2167 Ok(DeserializeWith(serde_with::As::<
2168 serde_with::OneOrMany<serde_with::Same>,
2169 >::deserialize(deserializer)?))
2170 }
2171 }
2172 match map.next_value::<DeserializeWith>() {
2173 Ok(deserialize_with) => deserialize_with.0,
2174 Err(err) => {
2175 return Err(err);
2176 }
2177 }
2178 });
2179 }
2180 Field::Duration => {
2181 if r#duration_property.is_some() {
2182 return Err(<A::Error as de::Error>::duplicate_field(
2183 "duration",
2184 ));
2185 }
2186 r#duration_property = Some({
2187 struct DeserializeWith(Vec<DurationProperty>);
2188 impl<'de> Deserialize<'de> for DeserializeWith {
2189 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2190 where
2191 D: Deserializer<'de>,
2192 {
2193 Ok(DeserializeWith(serde_with::As::<
2194 serde_with::OneOrMany<serde_with::Same>,
2195 >::deserialize(deserializer)?))
2196 }
2197 }
2198 match map.next_value::<DeserializeWith>() {
2199 Ok(deserialize_with) => deserialize_with.0,
2200 Err(err) => {
2201 return Err(err);
2202 }
2203 }
2204 });
2205 }
2206 Field::EndDate => {
2207 if r#end_date_property.is_some() {
2208 return Err(<A::Error as de::Error>::duplicate_field(
2209 "endDate",
2210 ));
2211 }
2212 r#end_date_property = Some({
2213 struct DeserializeWith(Vec<EndDateProperty>);
2214 impl<'de> Deserialize<'de> for DeserializeWith {
2215 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2216 where
2217 D: Deserializer<'de>,
2218 {
2219 Ok(DeserializeWith(serde_with::As::<
2220 serde_with::OneOrMany<serde_with::Same>,
2221 >::deserialize(deserializer)?))
2222 }
2223 }
2224 match map.next_value::<DeserializeWith>() {
2225 Ok(deserialize_with) => deserialize_with.0,
2226 Err(err) => {
2227 return Err(err);
2228 }
2229 }
2230 });
2231 }
2232 Field::EventAttendanceMode => {
2233 if r#event_attendance_mode_property.is_some() {
2234 return Err(<A::Error as de::Error>::duplicate_field(
2235 "eventAttendanceMode",
2236 ));
2237 }
2238 r#event_attendance_mode_property = Some({
2239 struct DeserializeWith(Vec<EventAttendanceModeProperty>);
2240 impl<'de> Deserialize<'de> for DeserializeWith {
2241 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2242 where
2243 D: Deserializer<'de>,
2244 {
2245 Ok(DeserializeWith(serde_with::As::<
2246 serde_with::OneOrMany<serde_with::Same>,
2247 >::deserialize(deserializer)?))
2248 }
2249 }
2250 match map.next_value::<DeserializeWith>() {
2251 Ok(deserialize_with) => deserialize_with.0,
2252 Err(err) => {
2253 return Err(err);
2254 }
2255 }
2256 });
2257 }
2258 Field::EventSchedule => {
2259 if r#event_schedule_property.is_some() {
2260 return Err(<A::Error as de::Error>::duplicate_field(
2261 "eventSchedule",
2262 ));
2263 }
2264 r#event_schedule_property = Some({
2265 struct DeserializeWith(Vec<EventScheduleProperty>);
2266 impl<'de> Deserialize<'de> for DeserializeWith {
2267 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2268 where
2269 D: Deserializer<'de>,
2270 {
2271 Ok(DeserializeWith(serde_with::As::<
2272 serde_with::OneOrMany<serde_with::Same>,
2273 >::deserialize(deserializer)?))
2274 }
2275 }
2276 match map.next_value::<DeserializeWith>() {
2277 Ok(deserialize_with) => deserialize_with.0,
2278 Err(err) => {
2279 return Err(err);
2280 }
2281 }
2282 });
2283 }
2284 Field::EventStatus => {
2285 if r#event_status_property.is_some() {
2286 return Err(<A::Error as de::Error>::duplicate_field(
2287 "eventStatus",
2288 ));
2289 }
2290 r#event_status_property = Some({
2291 struct DeserializeWith(Vec<EventStatusProperty>);
2292 impl<'de> Deserialize<'de> for DeserializeWith {
2293 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2294 where
2295 D: Deserializer<'de>,
2296 {
2297 Ok(DeserializeWith(serde_with::As::<
2298 serde_with::OneOrMany<serde_with::Same>,
2299 >::deserialize(deserializer)?))
2300 }
2301 }
2302 match map.next_value::<DeserializeWith>() {
2303 Ok(deserialize_with) => deserialize_with.0,
2304 Err(err) => {
2305 return Err(err);
2306 }
2307 }
2308 });
2309 }
2310 Field::Funder => {
2311 if r#funder_property.is_some() {
2312 return Err(<A::Error as de::Error>::duplicate_field("funder"));
2313 }
2314 r#funder_property = Some({
2315 struct DeserializeWith(Vec<FunderProperty>);
2316 impl<'de> Deserialize<'de> for DeserializeWith {
2317 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2318 where
2319 D: Deserializer<'de>,
2320 {
2321 Ok(DeserializeWith(serde_with::As::<
2322 serde_with::OneOrMany<serde_with::Same>,
2323 >::deserialize(deserializer)?))
2324 }
2325 }
2326 match map.next_value::<DeserializeWith>() {
2327 Ok(deserialize_with) => deserialize_with.0,
2328 Err(err) => {
2329 return Err(err);
2330 }
2331 }
2332 });
2333 }
2334 Field::Funding => {
2335 if r#funding_property.is_some() {
2336 return Err(<A::Error as de::Error>::duplicate_field(
2337 "funding",
2338 ));
2339 }
2340 r#funding_property = Some({
2341 struct DeserializeWith(Vec<FundingProperty>);
2342 impl<'de> Deserialize<'de> for DeserializeWith {
2343 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2344 where
2345 D: Deserializer<'de>,
2346 {
2347 Ok(DeserializeWith(serde_with::As::<
2348 serde_with::OneOrMany<serde_with::Same>,
2349 >::deserialize(deserializer)?))
2350 }
2351 }
2352 match map.next_value::<DeserializeWith>() {
2353 Ok(deserialize_with) => deserialize_with.0,
2354 Err(err) => {
2355 return Err(err);
2356 }
2357 }
2358 });
2359 }
2360 Field::InLanguage => {
2361 if r#in_language_property.is_some() {
2362 return Err(<A::Error as de::Error>::duplicate_field(
2363 "inLanguage",
2364 ));
2365 }
2366 r#in_language_property = Some({
2367 struct DeserializeWith(Vec<InLanguageProperty>);
2368 impl<'de> Deserialize<'de> for DeserializeWith {
2369 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2370 where
2371 D: Deserializer<'de>,
2372 {
2373 Ok(DeserializeWith(serde_with::As::<
2374 serde_with::OneOrMany<serde_with::Same>,
2375 >::deserialize(deserializer)?))
2376 }
2377 }
2378 match map.next_value::<DeserializeWith>() {
2379 Ok(deserialize_with) => deserialize_with.0,
2380 Err(err) => {
2381 return Err(err);
2382 }
2383 }
2384 });
2385 }
2386 Field::IsAccessibleForFree => {
2387 if r#is_accessible_for_free_property.is_some() {
2388 return Err(<A::Error as de::Error>::duplicate_field(
2389 "isAccessibleForFree",
2390 ));
2391 }
2392 r#is_accessible_for_free_property = Some({
2393 struct DeserializeWith(Vec<IsAccessibleForFreeProperty>);
2394 impl<'de> Deserialize<'de> for DeserializeWith {
2395 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2396 where
2397 D: Deserializer<'de>,
2398 {
2399 Ok(DeserializeWith(serde_with::As::<
2400 serde_with::OneOrMany<serde_with::Same>,
2401 >::deserialize(deserializer)?))
2402 }
2403 }
2404 match map.next_value::<DeserializeWith>() {
2405 Ok(deserialize_with) => deserialize_with.0,
2406 Err(err) => {
2407 return Err(err);
2408 }
2409 }
2410 });
2411 }
2412 Field::Keywords => {
2413 if r#keywords_property.is_some() {
2414 return Err(<A::Error as de::Error>::duplicate_field(
2415 "keywords",
2416 ));
2417 }
2418 r#keywords_property = Some({
2419 struct DeserializeWith(Vec<KeywordsProperty>);
2420 impl<'de> Deserialize<'de> for DeserializeWith {
2421 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2422 where
2423 D: Deserializer<'de>,
2424 {
2425 Ok(DeserializeWith(serde_with::As::<
2426 serde_with::OneOrMany<serde_with::Same>,
2427 >::deserialize(deserializer)?))
2428 }
2429 }
2430 match map.next_value::<DeserializeWith>() {
2431 Ok(deserialize_with) => deserialize_with.0,
2432 Err(err) => {
2433 return Err(err);
2434 }
2435 }
2436 });
2437 }
2438 Field::Location => {
2439 if r#location_property.is_some() {
2440 return Err(<A::Error as de::Error>::duplicate_field(
2441 "location",
2442 ));
2443 }
2444 r#location_property = Some({
2445 struct DeserializeWith(Vec<LocationProperty>);
2446 impl<'de> Deserialize<'de> for DeserializeWith {
2447 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2448 where
2449 D: Deserializer<'de>,
2450 {
2451 Ok(DeserializeWith(serde_with::As::<
2452 serde_with::OneOrMany<serde_with::Same>,
2453 >::deserialize(deserializer)?))
2454 }
2455 }
2456 match map.next_value::<DeserializeWith>() {
2457 Ok(deserialize_with) => deserialize_with.0,
2458 Err(err) => {
2459 return Err(err);
2460 }
2461 }
2462 });
2463 }
2464 Field::MaximumAttendeeCapacity => {
2465 if r#maximum_attendee_capacity_property.is_some() {
2466 return Err(<A::Error as de::Error>::duplicate_field(
2467 "maximumAttendeeCapacity",
2468 ));
2469 }
2470 r#maximum_attendee_capacity_property = Some({
2471 struct DeserializeWith(Vec<MaximumAttendeeCapacityProperty>);
2472 impl<'de> Deserialize<'de> for DeserializeWith {
2473 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2474 where
2475 D: Deserializer<'de>,
2476 {
2477 Ok(DeserializeWith(serde_with::As::<
2478 serde_with::OneOrMany<serde_with::Same>,
2479 >::deserialize(deserializer)?))
2480 }
2481 }
2482 match map.next_value::<DeserializeWith>() {
2483 Ok(deserialize_with) => deserialize_with.0,
2484 Err(err) => {
2485 return Err(err);
2486 }
2487 }
2488 });
2489 }
2490 Field::MaximumPhysicalAttendeeCapacity => {
2491 if r#maximum_physical_attendee_capacity_property.is_some() {
2492 return Err(<A::Error as de::Error>::duplicate_field(
2493 "maximumPhysicalAttendeeCapacity",
2494 ));
2495 }
2496 r#maximum_physical_attendee_capacity_property = Some({
2497 struct DeserializeWith(
2498 Vec<MaximumPhysicalAttendeeCapacityProperty>,
2499 );
2500 impl<'de> Deserialize<'de> for DeserializeWith {
2501 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2502 where
2503 D: Deserializer<'de>,
2504 {
2505 Ok(DeserializeWith(serde_with::As::<
2506 serde_with::OneOrMany<serde_with::Same>,
2507 >::deserialize(deserializer)?))
2508 }
2509 }
2510 match map.next_value::<DeserializeWith>() {
2511 Ok(deserialize_with) => deserialize_with.0,
2512 Err(err) => {
2513 return Err(err);
2514 }
2515 }
2516 });
2517 }
2518 Field::MaximumVirtualAttendeeCapacity => {
2519 if r#maximum_virtual_attendee_capacity_property.is_some() {
2520 return Err(<A::Error as de::Error>::duplicate_field(
2521 "maximumVirtualAttendeeCapacity",
2522 ));
2523 }
2524 r#maximum_virtual_attendee_capacity_property = Some({
2525 struct DeserializeWith(
2526 Vec<MaximumVirtualAttendeeCapacityProperty>,
2527 );
2528 impl<'de> Deserialize<'de> for DeserializeWith {
2529 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2530 where
2531 D: Deserializer<'de>,
2532 {
2533 Ok(DeserializeWith(serde_with::As::<
2534 serde_with::OneOrMany<serde_with::Same>,
2535 >::deserialize(deserializer)?))
2536 }
2537 }
2538 match map.next_value::<DeserializeWith>() {
2539 Ok(deserialize_with) => deserialize_with.0,
2540 Err(err) => {
2541 return Err(err);
2542 }
2543 }
2544 });
2545 }
2546 Field::Offers => {
2547 if r#offers_property.is_some() {
2548 return Err(<A::Error as de::Error>::duplicate_field("offers"));
2549 }
2550 r#offers_property = Some({
2551 struct DeserializeWith(Vec<OffersProperty>);
2552 impl<'de> Deserialize<'de> for DeserializeWith {
2553 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2554 where
2555 D: Deserializer<'de>,
2556 {
2557 Ok(DeserializeWith(serde_with::As::<
2558 serde_with::OneOrMany<serde_with::Same>,
2559 >::deserialize(deserializer)?))
2560 }
2561 }
2562 match map.next_value::<DeserializeWith>() {
2563 Ok(deserialize_with) => deserialize_with.0,
2564 Err(err) => {
2565 return Err(err);
2566 }
2567 }
2568 });
2569 }
2570 Field::Organizer => {
2571 if r#organizer_property.is_some() {
2572 return Err(<A::Error as de::Error>::duplicate_field(
2573 "organizer",
2574 ));
2575 }
2576 r#organizer_property = Some({
2577 struct DeserializeWith(Vec<OrganizerProperty>);
2578 impl<'de> Deserialize<'de> for DeserializeWith {
2579 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2580 where
2581 D: Deserializer<'de>,
2582 {
2583 Ok(DeserializeWith(serde_with::As::<
2584 serde_with::OneOrMany<serde_with::Same>,
2585 >::deserialize(deserializer)?))
2586 }
2587 }
2588 match map.next_value::<DeserializeWith>() {
2589 Ok(deserialize_with) => deserialize_with.0,
2590 Err(err) => {
2591 return Err(err);
2592 }
2593 }
2594 });
2595 }
2596 Field::Performer => {
2597 if r#performer_property.is_some() {
2598 return Err(<A::Error as de::Error>::duplicate_field(
2599 "performer",
2600 ));
2601 }
2602 r#performer_property = Some({
2603 struct DeserializeWith(Vec<PerformerProperty>);
2604 impl<'de> Deserialize<'de> for DeserializeWith {
2605 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2606 where
2607 D: Deserializer<'de>,
2608 {
2609 Ok(DeserializeWith(serde_with::As::<
2610 serde_with::OneOrMany<serde_with::Same>,
2611 >::deserialize(deserializer)?))
2612 }
2613 }
2614 match map.next_value::<DeserializeWith>() {
2615 Ok(deserialize_with) => deserialize_with.0,
2616 Err(err) => {
2617 return Err(err);
2618 }
2619 }
2620 });
2621 }
2622 Field::Performers => {
2623 if r#performers_property.is_some() {
2624 return Err(<A::Error as de::Error>::duplicate_field(
2625 "performers",
2626 ));
2627 }
2628 r#performers_property = Some({
2629 struct DeserializeWith(Vec<PerformersProperty>);
2630 impl<'de> Deserialize<'de> for DeserializeWith {
2631 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2632 where
2633 D: Deserializer<'de>,
2634 {
2635 Ok(DeserializeWith(serde_with::As::<
2636 serde_with::OneOrMany<serde_with::Same>,
2637 >::deserialize(deserializer)?))
2638 }
2639 }
2640 match map.next_value::<DeserializeWith>() {
2641 Ok(deserialize_with) => deserialize_with.0,
2642 Err(err) => {
2643 return Err(err);
2644 }
2645 }
2646 });
2647 }
2648 Field::PreviousStartDate => {
2649 if r#previous_start_date_property.is_some() {
2650 return Err(<A::Error as de::Error>::duplicate_field(
2651 "previousStartDate",
2652 ));
2653 }
2654 r#previous_start_date_property = Some({
2655 struct DeserializeWith(Vec<PreviousStartDateProperty>);
2656 impl<'de> Deserialize<'de> for DeserializeWith {
2657 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2658 where
2659 D: Deserializer<'de>,
2660 {
2661 Ok(DeserializeWith(serde_with::As::<
2662 serde_with::OneOrMany<serde_with::Same>,
2663 >::deserialize(deserializer)?))
2664 }
2665 }
2666 match map.next_value::<DeserializeWith>() {
2667 Ok(deserialize_with) => deserialize_with.0,
2668 Err(err) => {
2669 return Err(err);
2670 }
2671 }
2672 });
2673 }
2674 Field::RecordedIn => {
2675 if r#recorded_in_property.is_some() {
2676 return Err(<A::Error as de::Error>::duplicate_field(
2677 "recordedIn",
2678 ));
2679 }
2680 r#recorded_in_property = Some({
2681 struct DeserializeWith(Vec<RecordedInProperty>);
2682 impl<'de> Deserialize<'de> for DeserializeWith {
2683 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2684 where
2685 D: Deserializer<'de>,
2686 {
2687 Ok(DeserializeWith(serde_with::As::<
2688 serde_with::OneOrMany<serde_with::Same>,
2689 >::deserialize(deserializer)?))
2690 }
2691 }
2692 match map.next_value::<DeserializeWith>() {
2693 Ok(deserialize_with) => deserialize_with.0,
2694 Err(err) => {
2695 return Err(err);
2696 }
2697 }
2698 });
2699 }
2700 Field::RemainingAttendeeCapacity => {
2701 if r#remaining_attendee_capacity_property.is_some() {
2702 return Err(<A::Error as de::Error>::duplicate_field(
2703 "remainingAttendeeCapacity",
2704 ));
2705 }
2706 r#remaining_attendee_capacity_property = Some({
2707 struct DeserializeWith(Vec<RemainingAttendeeCapacityProperty>);
2708 impl<'de> Deserialize<'de> for DeserializeWith {
2709 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2710 where
2711 D: Deserializer<'de>,
2712 {
2713 Ok(DeserializeWith(serde_with::As::<
2714 serde_with::OneOrMany<serde_with::Same>,
2715 >::deserialize(deserializer)?))
2716 }
2717 }
2718 match map.next_value::<DeserializeWith>() {
2719 Ok(deserialize_with) => deserialize_with.0,
2720 Err(err) => {
2721 return Err(err);
2722 }
2723 }
2724 });
2725 }
2726 Field::Review => {
2727 if r#review_property.is_some() {
2728 return Err(<A::Error as de::Error>::duplicate_field("review"));
2729 }
2730 r#review_property = Some({
2731 struct DeserializeWith(Vec<ReviewProperty>);
2732 impl<'de> Deserialize<'de> for DeserializeWith {
2733 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2734 where
2735 D: Deserializer<'de>,
2736 {
2737 Ok(DeserializeWith(serde_with::As::<
2738 serde_with::OneOrMany<serde_with::Same>,
2739 >::deserialize(deserializer)?))
2740 }
2741 }
2742 match map.next_value::<DeserializeWith>() {
2743 Ok(deserialize_with) => deserialize_with.0,
2744 Err(err) => {
2745 return Err(err);
2746 }
2747 }
2748 });
2749 }
2750 Field::Sponsor => {
2751 if r#sponsor_property.is_some() {
2752 return Err(<A::Error as de::Error>::duplicate_field(
2753 "sponsor",
2754 ));
2755 }
2756 r#sponsor_property = Some({
2757 struct DeserializeWith(Vec<SponsorProperty>);
2758 impl<'de> Deserialize<'de> for DeserializeWith {
2759 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2760 where
2761 D: Deserializer<'de>,
2762 {
2763 Ok(DeserializeWith(serde_with::As::<
2764 serde_with::OneOrMany<serde_with::Same>,
2765 >::deserialize(deserializer)?))
2766 }
2767 }
2768 match map.next_value::<DeserializeWith>() {
2769 Ok(deserialize_with) => deserialize_with.0,
2770 Err(err) => {
2771 return Err(err);
2772 }
2773 }
2774 });
2775 }
2776 Field::StartDate => {
2777 if r#start_date_property.is_some() {
2778 return Err(<A::Error as de::Error>::duplicate_field(
2779 "startDate",
2780 ));
2781 }
2782 r#start_date_property = Some({
2783 struct DeserializeWith(Vec<StartDateProperty>);
2784 impl<'de> Deserialize<'de> for DeserializeWith {
2785 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2786 where
2787 D: Deserializer<'de>,
2788 {
2789 Ok(DeserializeWith(serde_with::As::<
2790 serde_with::OneOrMany<serde_with::Same>,
2791 >::deserialize(deserializer)?))
2792 }
2793 }
2794 match map.next_value::<DeserializeWith>() {
2795 Ok(deserialize_with) => deserialize_with.0,
2796 Err(err) => {
2797 return Err(err);
2798 }
2799 }
2800 });
2801 }
2802 Field::SubEvent => {
2803 if r#sub_event_property.is_some() {
2804 return Err(<A::Error as de::Error>::duplicate_field(
2805 "subEvent",
2806 ));
2807 }
2808 r#sub_event_property = Some({
2809 struct DeserializeWith(Vec<SubEventProperty>);
2810 impl<'de> Deserialize<'de> for DeserializeWith {
2811 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2812 where
2813 D: Deserializer<'de>,
2814 {
2815 Ok(DeserializeWith(serde_with::As::<
2816 serde_with::OneOrMany<serde_with::Same>,
2817 >::deserialize(deserializer)?))
2818 }
2819 }
2820 match map.next_value::<DeserializeWith>() {
2821 Ok(deserialize_with) => deserialize_with.0,
2822 Err(err) => {
2823 return Err(err);
2824 }
2825 }
2826 });
2827 }
2828 Field::SubEvents => {
2829 if r#sub_events_property.is_some() {
2830 return Err(<A::Error as de::Error>::duplicate_field(
2831 "subEvents",
2832 ));
2833 }
2834 r#sub_events_property = Some({
2835 struct DeserializeWith(Vec<SubEventsProperty>);
2836 impl<'de> Deserialize<'de> for DeserializeWith {
2837 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2838 where
2839 D: Deserializer<'de>,
2840 {
2841 Ok(DeserializeWith(serde_with::As::<
2842 serde_with::OneOrMany<serde_with::Same>,
2843 >::deserialize(deserializer)?))
2844 }
2845 }
2846 match map.next_value::<DeserializeWith>() {
2847 Ok(deserialize_with) => deserialize_with.0,
2848 Err(err) => {
2849 return Err(err);
2850 }
2851 }
2852 });
2853 }
2854 Field::SuperEvent => {
2855 if r#super_event_property.is_some() {
2856 return Err(<A::Error as de::Error>::duplicate_field(
2857 "superEvent",
2858 ));
2859 }
2860 r#super_event_property = Some({
2861 struct DeserializeWith(Vec<SuperEventProperty>);
2862 impl<'de> Deserialize<'de> for DeserializeWith {
2863 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2864 where
2865 D: Deserializer<'de>,
2866 {
2867 Ok(DeserializeWith(serde_with::As::<
2868 serde_with::OneOrMany<serde_with::Same>,
2869 >::deserialize(deserializer)?))
2870 }
2871 }
2872 match map.next_value::<DeserializeWith>() {
2873 Ok(deserialize_with) => deserialize_with.0,
2874 Err(err) => {
2875 return Err(err);
2876 }
2877 }
2878 });
2879 }
2880 Field::Translator => {
2881 if r#translator_property.is_some() {
2882 return Err(<A::Error as de::Error>::duplicate_field(
2883 "translator",
2884 ));
2885 }
2886 r#translator_property = Some({
2887 struct DeserializeWith(Vec<TranslatorProperty>);
2888 impl<'de> Deserialize<'de> for DeserializeWith {
2889 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2890 where
2891 D: Deserializer<'de>,
2892 {
2893 Ok(DeserializeWith(serde_with::As::<
2894 serde_with::OneOrMany<serde_with::Same>,
2895 >::deserialize(deserializer)?))
2896 }
2897 }
2898 match map.next_value::<DeserializeWith>() {
2899 Ok(deserialize_with) => deserialize_with.0,
2900 Err(err) => {
2901 return Err(err);
2902 }
2903 }
2904 });
2905 }
2906 Field::TypicalAgeRange => {
2907 if r#typical_age_range_property.is_some() {
2908 return Err(<A::Error as de::Error>::duplicate_field(
2909 "typicalAgeRange",
2910 ));
2911 }
2912 r#typical_age_range_property = Some({
2913 struct DeserializeWith(Vec<TypicalAgeRangeProperty>);
2914 impl<'de> Deserialize<'de> for DeserializeWith {
2915 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2916 where
2917 D: Deserializer<'de>,
2918 {
2919 Ok(DeserializeWith(serde_with::As::<
2920 serde_with::OneOrMany<serde_with::Same>,
2921 >::deserialize(deserializer)?))
2922 }
2923 }
2924 match map.next_value::<DeserializeWith>() {
2925 Ok(deserialize_with) => deserialize_with.0,
2926 Err(err) => {
2927 return Err(err);
2928 }
2929 }
2930 });
2931 }
2932 Field::WorkFeatured => {
2933 if r#work_featured_property.is_some() {
2934 return Err(<A::Error as de::Error>::duplicate_field(
2935 "workFeatured",
2936 ));
2937 }
2938 r#work_featured_property = Some({
2939 struct DeserializeWith(Vec<WorkFeaturedProperty>);
2940 impl<'de> Deserialize<'de> for DeserializeWith {
2941 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2942 where
2943 D: Deserializer<'de>,
2944 {
2945 Ok(DeserializeWith(serde_with::As::<
2946 serde_with::OneOrMany<serde_with::Same>,
2947 >::deserialize(deserializer)?))
2948 }
2949 }
2950 match map.next_value::<DeserializeWith>() {
2951 Ok(deserialize_with) => deserialize_with.0,
2952 Err(err) => {
2953 return Err(err);
2954 }
2955 }
2956 });
2957 }
2958 Field::WorkPerformed => {
2959 if r#work_performed_property.is_some() {
2960 return Err(<A::Error as de::Error>::duplicate_field(
2961 "workPerformed",
2962 ));
2963 }
2964 r#work_performed_property = Some({
2965 struct DeserializeWith(Vec<WorkPerformedProperty>);
2966 impl<'de> Deserialize<'de> for DeserializeWith {
2967 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2968 where
2969 D: Deserializer<'de>,
2970 {
2971 Ok(DeserializeWith(serde_with::As::<
2972 serde_with::OneOrMany<serde_with::Same>,
2973 >::deserialize(deserializer)?))
2974 }
2975 }
2976 match map.next_value::<DeserializeWith>() {
2977 Ok(deserialize_with) => deserialize_with.0,
2978 Err(err) => {
2979 return Err(err);
2980 }
2981 }
2982 });
2983 }
2984 Field::AdditionalType => {
2985 if r#additional_type_property.is_some() {
2986 return Err(<A::Error as de::Error>::duplicate_field(
2987 "additionalType",
2988 ));
2989 }
2990 r#additional_type_property = Some({
2991 struct DeserializeWith(Vec<AdditionalTypeProperty>);
2992 impl<'de> Deserialize<'de> for DeserializeWith {
2993 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2994 where
2995 D: Deserializer<'de>,
2996 {
2997 Ok(DeserializeWith(serde_with::As::<
2998 serde_with::OneOrMany<serde_with::Same>,
2999 >::deserialize(deserializer)?))
3000 }
3001 }
3002 match map.next_value::<DeserializeWith>() {
3003 Ok(deserialize_with) => deserialize_with.0,
3004 Err(err) => {
3005 return Err(err);
3006 }
3007 }
3008 });
3009 }
3010 Field::AlternateName => {
3011 if r#alternate_name_property.is_some() {
3012 return Err(<A::Error as de::Error>::duplicate_field(
3013 "alternateName",
3014 ));
3015 }
3016 r#alternate_name_property = Some({
3017 struct DeserializeWith(Vec<AlternateNameProperty>);
3018 impl<'de> Deserialize<'de> for DeserializeWith {
3019 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3020 where
3021 D: Deserializer<'de>,
3022 {
3023 Ok(DeserializeWith(serde_with::As::<
3024 serde_with::OneOrMany<serde_with::Same>,
3025 >::deserialize(deserializer)?))
3026 }
3027 }
3028 match map.next_value::<DeserializeWith>() {
3029 Ok(deserialize_with) => deserialize_with.0,
3030 Err(err) => {
3031 return Err(err);
3032 }
3033 }
3034 });
3035 }
3036 Field::Description => {
3037 if r#description_property.is_some() {
3038 return Err(<A::Error as de::Error>::duplicate_field(
3039 "description",
3040 ));
3041 }
3042 r#description_property = Some({
3043 struct DeserializeWith(Vec<DescriptionProperty>);
3044 impl<'de> Deserialize<'de> for DeserializeWith {
3045 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3046 where
3047 D: Deserializer<'de>,
3048 {
3049 Ok(DeserializeWith(serde_with::As::<
3050 serde_with::OneOrMany<serde_with::Same>,
3051 >::deserialize(deserializer)?))
3052 }
3053 }
3054 match map.next_value::<DeserializeWith>() {
3055 Ok(deserialize_with) => deserialize_with.0,
3056 Err(err) => {
3057 return Err(err);
3058 }
3059 }
3060 });
3061 }
3062 Field::DisambiguatingDescription => {
3063 if r#disambiguating_description_property.is_some() {
3064 return Err(<A::Error as de::Error>::duplicate_field(
3065 "disambiguatingDescription",
3066 ));
3067 }
3068 r#disambiguating_description_property = Some({
3069 struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
3070 impl<'de> Deserialize<'de> for DeserializeWith {
3071 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3072 where
3073 D: Deserializer<'de>,
3074 {
3075 Ok(DeserializeWith(serde_with::As::<
3076 serde_with::OneOrMany<serde_with::Same>,
3077 >::deserialize(deserializer)?))
3078 }
3079 }
3080 match map.next_value::<DeserializeWith>() {
3081 Ok(deserialize_with) => deserialize_with.0,
3082 Err(err) => {
3083 return Err(err);
3084 }
3085 }
3086 });
3087 }
3088 Field::Identifier => {
3089 if r#identifier_property.is_some() {
3090 return Err(<A::Error as de::Error>::duplicate_field(
3091 "identifier",
3092 ));
3093 }
3094 r#identifier_property = Some({
3095 struct DeserializeWith(Vec<IdentifierProperty>);
3096 impl<'de> Deserialize<'de> for DeserializeWith {
3097 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3098 where
3099 D: Deserializer<'de>,
3100 {
3101 Ok(DeserializeWith(serde_with::As::<
3102 serde_with::OneOrMany<serde_with::Same>,
3103 >::deserialize(deserializer)?))
3104 }
3105 }
3106 match map.next_value::<DeserializeWith>() {
3107 Ok(deserialize_with) => deserialize_with.0,
3108 Err(err) => {
3109 return Err(err);
3110 }
3111 }
3112 });
3113 }
3114 Field::Image => {
3115 if r#image_property.is_some() {
3116 return Err(<A::Error as de::Error>::duplicate_field("image"));
3117 }
3118 r#image_property = Some({
3119 struct DeserializeWith(Vec<ImageProperty>);
3120 impl<'de> Deserialize<'de> for DeserializeWith {
3121 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3122 where
3123 D: Deserializer<'de>,
3124 {
3125 Ok(DeserializeWith(serde_with::As::<
3126 serde_with::OneOrMany<serde_with::Same>,
3127 >::deserialize(deserializer)?))
3128 }
3129 }
3130 match map.next_value::<DeserializeWith>() {
3131 Ok(deserialize_with) => deserialize_with.0,
3132 Err(err) => {
3133 return Err(err);
3134 }
3135 }
3136 });
3137 }
3138 Field::MainEntityOfPage => {
3139 if r#main_entity_of_page_property.is_some() {
3140 return Err(<A::Error as de::Error>::duplicate_field(
3141 "mainEntityOfPage",
3142 ));
3143 }
3144 r#main_entity_of_page_property = Some({
3145 struct DeserializeWith(Vec<MainEntityOfPageProperty>);
3146 impl<'de> Deserialize<'de> for DeserializeWith {
3147 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3148 where
3149 D: Deserializer<'de>,
3150 {
3151 Ok(DeserializeWith(serde_with::As::<
3152 serde_with::OneOrMany<serde_with::Same>,
3153 >::deserialize(deserializer)?))
3154 }
3155 }
3156 match map.next_value::<DeserializeWith>() {
3157 Ok(deserialize_with) => deserialize_with.0,
3158 Err(err) => {
3159 return Err(err);
3160 }
3161 }
3162 });
3163 }
3164 Field::Name => {
3165 if r#name_property.is_some() {
3166 return Err(<A::Error as de::Error>::duplicate_field("name"));
3167 }
3168 r#name_property = Some({
3169 struct DeserializeWith(Vec<NameProperty>);
3170 impl<'de> Deserialize<'de> for DeserializeWith {
3171 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3172 where
3173 D: Deserializer<'de>,
3174 {
3175 Ok(DeserializeWith(serde_with::As::<
3176 serde_with::OneOrMany<serde_with::Same>,
3177 >::deserialize(deserializer)?))
3178 }
3179 }
3180 match map.next_value::<DeserializeWith>() {
3181 Ok(deserialize_with) => deserialize_with.0,
3182 Err(err) => {
3183 return Err(err);
3184 }
3185 }
3186 });
3187 }
3188 Field::PotentialAction => {
3189 if r#potential_action_property.is_some() {
3190 return Err(<A::Error as de::Error>::duplicate_field(
3191 "potentialAction",
3192 ));
3193 }
3194 r#potential_action_property = Some({
3195 struct DeserializeWith(Vec<PotentialActionProperty>);
3196 impl<'de> Deserialize<'de> for DeserializeWith {
3197 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3198 where
3199 D: Deserializer<'de>,
3200 {
3201 Ok(DeserializeWith(serde_with::As::<
3202 serde_with::OneOrMany<serde_with::Same>,
3203 >::deserialize(deserializer)?))
3204 }
3205 }
3206 match map.next_value::<DeserializeWith>() {
3207 Ok(deserialize_with) => deserialize_with.0,
3208 Err(err) => {
3209 return Err(err);
3210 }
3211 }
3212 });
3213 }
3214 Field::SameAs => {
3215 if r#same_as_property.is_some() {
3216 return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
3217 }
3218 r#same_as_property = Some({
3219 struct DeserializeWith(Vec<SameAsProperty>);
3220 impl<'de> Deserialize<'de> for DeserializeWith {
3221 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3222 where
3223 D: Deserializer<'de>,
3224 {
3225 Ok(DeserializeWith(serde_with::As::<
3226 serde_with::OneOrMany<serde_with::Same>,
3227 >::deserialize(deserializer)?))
3228 }
3229 }
3230 match map.next_value::<DeserializeWith>() {
3231 Ok(deserialize_with) => deserialize_with.0,
3232 Err(err) => {
3233 return Err(err);
3234 }
3235 }
3236 });
3237 }
3238 Field::SubjectOf => {
3239 if r#subject_of_property.is_some() {
3240 return Err(<A::Error as de::Error>::duplicate_field(
3241 "subjectOf",
3242 ));
3243 }
3244 r#subject_of_property = Some({
3245 struct DeserializeWith(Vec<SubjectOfProperty>);
3246 impl<'de> Deserialize<'de> for DeserializeWith {
3247 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3248 where
3249 D: Deserializer<'de>,
3250 {
3251 Ok(DeserializeWith(serde_with::As::<
3252 serde_with::OneOrMany<serde_with::Same>,
3253 >::deserialize(deserializer)?))
3254 }
3255 }
3256 match map.next_value::<DeserializeWith>() {
3257 Ok(deserialize_with) => deserialize_with.0,
3258 Err(err) => {
3259 return Err(err);
3260 }
3261 }
3262 });
3263 }
3264 Field::Url => {
3265 if r#url_property.is_some() {
3266 return Err(<A::Error as de::Error>::duplicate_field("url"));
3267 }
3268 r#url_property = Some({
3269 struct DeserializeWith(Vec<UrlProperty>);
3270 impl<'de> Deserialize<'de> for DeserializeWith {
3271 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3272 where
3273 D: Deserializer<'de>,
3274 {
3275 Ok(DeserializeWith(serde_with::As::<
3276 serde_with::OneOrMany<serde_with::Same>,
3277 >::deserialize(deserializer)?))
3278 }
3279 }
3280 match map.next_value::<DeserializeWith>() {
3281 Ok(deserialize_with) => deserialize_with.0,
3282 Err(err) => {
3283 return Err(err);
3284 }
3285 }
3286 });
3287 }
3288 Field::Ignore => {
3289 let _ = map.next_value::<de::IgnoredAny>()?;
3290 }
3291 }
3292 }
3293 Ok(Event {
3294 r#about: r#about_property.unwrap_or_default(),
3295 r#actor: r#actor_property.unwrap_or_default(),
3296 r#aggregate_rating: r#aggregate_rating_property.unwrap_or_default(),
3297 r#attendee: r#attendee_property.unwrap_or_default(),
3298 r#attendees: r#attendees_property.unwrap_or_default(),
3299 r#audience: r#audience_property.unwrap_or_default(),
3300 r#composer: r#composer_property.unwrap_or_default(),
3301 r#contributor: r#contributor_property.unwrap_or_default(),
3302 r#director: r#director_property.unwrap_or_default(),
3303 r#door_time: r#door_time_property.unwrap_or_default(),
3304 r#duration: r#duration_property.unwrap_or_default(),
3305 r#end_date: r#end_date_property.unwrap_or_default(),
3306 r#event_attendance_mode: r#event_attendance_mode_property
3307 .unwrap_or_default(),
3308 r#event_schedule: r#event_schedule_property.unwrap_or_default(),
3309 r#event_status: r#event_status_property.unwrap_or_default(),
3310 r#funder: r#funder_property.unwrap_or_default(),
3311 r#funding: r#funding_property.unwrap_or_default(),
3312 r#in_language: r#in_language_property.unwrap_or_default(),
3313 r#is_accessible_for_free: r#is_accessible_for_free_property
3314 .unwrap_or_default(),
3315 r#keywords: r#keywords_property.unwrap_or_default(),
3316 r#location: r#location_property.unwrap_or_default(),
3317 r#maximum_attendee_capacity: r#maximum_attendee_capacity_property
3318 .unwrap_or_default(),
3319 r#maximum_physical_attendee_capacity:
3320 r#maximum_physical_attendee_capacity_property.unwrap_or_default(),
3321 r#maximum_virtual_attendee_capacity:
3322 r#maximum_virtual_attendee_capacity_property.unwrap_or_default(),
3323 r#offers: r#offers_property.unwrap_or_default(),
3324 r#organizer: r#organizer_property.unwrap_or_default(),
3325 r#performer: r#performer_property.unwrap_or_default(),
3326 r#performers: r#performers_property.unwrap_or_default(),
3327 r#previous_start_date: r#previous_start_date_property.unwrap_or_default(),
3328 r#recorded_in: r#recorded_in_property.unwrap_or_default(),
3329 r#remaining_attendee_capacity: r#remaining_attendee_capacity_property
3330 .unwrap_or_default(),
3331 r#review: r#review_property.unwrap_or_default(),
3332 r#sponsor: r#sponsor_property.unwrap_or_default(),
3333 r#start_date: r#start_date_property.unwrap_or_default(),
3334 r#sub_event: r#sub_event_property.unwrap_or_default(),
3335 r#sub_events: r#sub_events_property.unwrap_or_default(),
3336 r#super_event: r#super_event_property.unwrap_or_default(),
3337 r#translator: r#translator_property.unwrap_or_default(),
3338 r#typical_age_range: r#typical_age_range_property.unwrap_or_default(),
3339 r#work_featured: r#work_featured_property.unwrap_or_default(),
3340 r#work_performed: r#work_performed_property.unwrap_or_default(),
3341 r#additional_type: r#additional_type_property.unwrap_or_default(),
3342 r#alternate_name: r#alternate_name_property.unwrap_or_default(),
3343 r#description: r#description_property.unwrap_or_default(),
3344 r#disambiguating_description: r#disambiguating_description_property
3345 .unwrap_or_default(),
3346 r#identifier: r#identifier_property.unwrap_or_default(),
3347 r#image: r#image_property.unwrap_or_default(),
3348 r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
3349 r#name: r#name_property.unwrap_or_default(),
3350 r#potential_action: r#potential_action_property.unwrap_or_default(),
3351 r#same_as: r#same_as_property.unwrap_or_default(),
3352 r#subject_of: r#subject_of_property.unwrap_or_default(),
3353 r#url: r#url_property.unwrap_or_default(),
3354 })
3355 }
3356 }
3357 const FIELDS: &[&str] = &[
3358 "about",
3359 "actor",
3360 "aggregateRating",
3361 "attendee",
3362 "attendees",
3363 "audience",
3364 "composer",
3365 "contributor",
3366 "director",
3367 "doorTime",
3368 "duration",
3369 "endDate",
3370 "eventAttendanceMode",
3371 "eventSchedule",
3372 "eventStatus",
3373 "funder",
3374 "funding",
3375 "inLanguage",
3376 "isAccessibleForFree",
3377 "keywords",
3378 "location",
3379 "maximumAttendeeCapacity",
3380 "maximumPhysicalAttendeeCapacity",
3381 "maximumVirtualAttendeeCapacity",
3382 "offers",
3383 "organizer",
3384 "performer",
3385 "performers",
3386 "previousStartDate",
3387 "recordedIn",
3388 "remainingAttendeeCapacity",
3389 "review",
3390 "sponsor",
3391 "startDate",
3392 "subEvent",
3393 "subEvents",
3394 "superEvent",
3395 "translator",
3396 "typicalAgeRange",
3397 "workFeatured",
3398 "workPerformed",
3399 "additionalType",
3400 "alternateName",
3401 "description",
3402 "disambiguatingDescription",
3403 "identifier",
3404 "image",
3405 "mainEntityOfPage",
3406 "name",
3407 "potentialAction",
3408 "sameAs",
3409 "subjectOf",
3410 "url",
3411 ];
3412 deserializer.deserialize_struct("Event", FIELDS, ClassVisitor)
3413 }
3414 }
3415}