1use super::*;
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct Game {
6 pub r#character_attribute: Vec<CharacterAttributeProperty>,
8 pub r#game_item: Vec<GameItemProperty>,
10 pub r#game_location: Vec<GameLocationProperty>,
12 pub r#number_of_players: Vec<NumberOfPlayersProperty>,
14 pub r#quest: Vec<QuestProperty>,
16 pub r#about: Vec<AboutProperty>,
18 pub r#abstract: Vec<AbstractProperty>,
20 pub r#access_mode: Vec<AccessModeProperty>,
22 pub r#access_mode_sufficient: Vec<AccessModeSufficientProperty>,
24 pub r#accessibility_api: Vec<AccessibilityApiProperty>,
26 pub r#accessibility_control: Vec<AccessibilityControlProperty>,
28 pub r#accessibility_feature: Vec<AccessibilityFeatureProperty>,
30 pub r#accessibility_hazard: Vec<AccessibilityHazardProperty>,
32 pub r#accessibility_summary: Vec<AccessibilitySummaryProperty>,
34 pub r#accountable_person: Vec<AccountablePersonProperty>,
36 pub r#acquire_license_page: Vec<AcquireLicensePageProperty>,
38 pub r#aggregate_rating: Vec<AggregateRatingProperty>,
40 pub r#alternative_headline: Vec<AlternativeHeadlineProperty>,
42 pub r#archived_at: Vec<ArchivedAtProperty>,
44 pub r#assesses: Vec<AssessesProperty>,
46 pub r#associated_media: Vec<AssociatedMediaProperty>,
48 pub r#audience: Vec<AudienceProperty>,
50 pub r#audio: Vec<AudioProperty>,
52 pub r#author: Vec<AuthorProperty>,
54 pub r#award: Vec<AwardProperty>,
56 #[deprecated = "This schema is superseded by <https://schema.org/award>."]
58 pub r#awards: Vec<AwardsProperty>,
59 pub r#character: Vec<CharacterProperty>,
61 pub r#citation: Vec<CitationProperty>,
63 pub r#comment: Vec<CommentProperty>,
65 pub r#comment_count: Vec<CommentCountProperty>,
67 pub r#conditions_of_access: Vec<ConditionsOfAccessProperty>,
69 pub r#content_location: Vec<ContentLocationProperty>,
71 pub r#content_rating: Vec<ContentRatingProperty>,
73 pub r#content_reference_time: Vec<ContentReferenceTimeProperty>,
75 pub r#contributor: Vec<ContributorProperty>,
77 pub r#copyright_holder: Vec<CopyrightHolderProperty>,
79 pub r#copyright_notice: Vec<CopyrightNoticeProperty>,
81 pub r#copyright_year: Vec<CopyrightYearProperty>,
83 pub r#correction: Vec<CorrectionProperty>,
85 pub r#country_of_origin: Vec<CountryOfOriginProperty>,
87 pub r#creative_work_status: Vec<CreativeWorkStatusProperty>,
89 pub r#creator: Vec<CreatorProperty>,
91 pub r#credit_text: Vec<CreditTextProperty>,
93 pub r#date_created: Vec<DateCreatedProperty>,
95 pub r#date_modified: Vec<DateModifiedProperty>,
97 pub r#date_published: Vec<DatePublishedProperty>,
99 pub r#discussion_url: Vec<DiscussionUrlProperty>,
101 pub r#edit_eidr: Vec<EditEidrProperty>,
103 pub r#editor: Vec<EditorProperty>,
105 pub r#educational_alignment: Vec<EducationalAlignmentProperty>,
107 pub r#educational_level: Vec<EducationalLevelProperty>,
109 pub r#educational_use: Vec<EducationalUseProperty>,
111 pub r#encoding: Vec<EncodingProperty>,
113 pub r#encoding_format: Vec<EncodingFormatProperty>,
115 #[deprecated = "This schema is superseded by <https://schema.org/encoding>."]
117 pub r#encodings: Vec<EncodingsProperty>,
118 pub r#example_of_work: Vec<ExampleOfWorkProperty>,
120 pub r#expires: Vec<ExpiresProperty>,
122 #[deprecated = "This schema is superseded by <https://schema.org/encodingFormat>."]
124 pub r#file_format: Vec<FileFormatProperty>,
125 pub r#funder: Vec<FunderProperty>,
127 pub r#funding: Vec<FundingProperty>,
129 pub r#genre: Vec<GenreProperty>,
131 pub r#has_part: Vec<HasPartProperty>,
133 pub r#headline: Vec<HeadlineProperty>,
135 pub r#in_language: Vec<InLanguageProperty>,
137 pub r#interaction_statistic: Vec<InteractionStatisticProperty>,
139 pub r#interactivity_type: Vec<InteractivityTypeProperty>,
141 pub r#interpreted_as_claim: Vec<InterpretedAsClaimProperty>,
143 pub r#is_accessible_for_free: Vec<IsAccessibleForFreeProperty>,
145 pub r#is_based_on: Vec<IsBasedOnProperty>,
147 #[deprecated = "This schema is superseded by <https://schema.org/isBasedOn>."]
149 pub r#is_based_on_url: Vec<IsBasedOnUrlProperty>,
150 pub r#is_family_friendly: Vec<IsFamilyFriendlyProperty>,
152 pub r#is_part_of: Vec<IsPartOfProperty>,
154 pub r#keywords: Vec<KeywordsProperty>,
156 pub r#learning_resource_type: Vec<LearningResourceTypeProperty>,
158 pub r#license: Vec<LicenseProperty>,
160 pub r#location_created: Vec<LocationCreatedProperty>,
162 pub r#main_entity: Vec<MainEntityProperty>,
164 pub r#maintainer: Vec<MaintainerProperty>,
166 pub r#material: Vec<MaterialProperty>,
168 pub r#material_extent: Vec<MaterialExtentProperty>,
170 pub r#mentions: Vec<MentionsProperty>,
172 pub r#offers: Vec<OffersProperty>,
174 pub r#pattern: Vec<PatternProperty>,
176 pub r#position: Vec<PositionProperty>,
178 pub r#producer: Vec<ProducerProperty>,
180 pub r#provider: Vec<ProviderProperty>,
182 pub r#publication: Vec<PublicationProperty>,
184 pub r#publisher: Vec<PublisherProperty>,
186 pub r#publisher_imprint: Vec<PublisherImprintProperty>,
188 pub r#publishing_principles: Vec<PublishingPrinciplesProperty>,
190 pub r#recorded_at: Vec<RecordedAtProperty>,
192 pub r#released_event: Vec<ReleasedEventProperty>,
194 pub r#review: Vec<ReviewProperty>,
196 #[deprecated = "This schema is superseded by <https://schema.org/review>."]
198 pub r#reviews: Vec<ReviewsProperty>,
199 pub r#schema_version: Vec<SchemaVersionProperty>,
201 pub r#sd_date_published: Vec<SdDatePublishedProperty>,
203 pub r#sd_license: Vec<SdLicenseProperty>,
205 pub r#sd_publisher: Vec<SdPublisherProperty>,
207 pub r#size: Vec<SizeProperty>,
209 pub r#source_organization: Vec<SourceOrganizationProperty>,
211 pub r#spatial: Vec<SpatialProperty>,
213 pub r#spatial_coverage: Vec<SpatialCoverageProperty>,
215 pub r#sponsor: Vec<SponsorProperty>,
217 pub r#teaches: Vec<TeachesProperty>,
219 pub r#temporal: Vec<TemporalProperty>,
221 pub r#temporal_coverage: Vec<TemporalCoverageProperty>,
223 pub r#text: Vec<TextProperty>,
225 pub r#thumbnail: Vec<ThumbnailProperty>,
227 pub r#thumbnail_url: Vec<ThumbnailUrlProperty>,
229 pub r#time_required: Vec<TimeRequiredProperty>,
231 pub r#translation_of_work: Vec<TranslationOfWorkProperty>,
233 pub r#translator: Vec<TranslatorProperty>,
235 pub r#typical_age_range: Vec<TypicalAgeRangeProperty>,
237 pub r#usage_info: Vec<UsageInfoProperty>,
239 pub r#version: Vec<VersionProperty>,
241 pub r#video: Vec<VideoProperty>,
243 pub r#work_example: Vec<WorkExampleProperty>,
245 pub r#work_translation: Vec<WorkTranslationProperty>,
247 pub r#additional_type: Vec<AdditionalTypeProperty>,
249 pub r#alternate_name: Vec<AlternateNameProperty>,
251 pub r#description: Vec<DescriptionProperty>,
253 pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
255 pub r#identifier: Vec<IdentifierProperty>,
257 pub r#image: Vec<ImageProperty>,
259 pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
261 pub r#name: Vec<NameProperty>,
263 pub r#potential_action: Vec<PotentialActionProperty>,
265 pub r#same_as: Vec<SameAsProperty>,
267 pub r#subject_of: Vec<SubjectOfProperty>,
269 pub r#url: Vec<UrlProperty>,
271}
272pub trait GameTrait {
274 fn get_character_attribute(&self) -> &[CharacterAttributeProperty];
276 fn take_character_attribute(&mut self) -> Vec<CharacterAttributeProperty>;
278 fn get_game_item(&self) -> &[GameItemProperty];
280 fn take_game_item(&mut self) -> Vec<GameItemProperty>;
282 fn get_game_location(&self) -> &[GameLocationProperty];
284 fn take_game_location(&mut self) -> Vec<GameLocationProperty>;
286 fn get_number_of_players(&self) -> &[NumberOfPlayersProperty];
288 fn take_number_of_players(&mut self) -> Vec<NumberOfPlayersProperty>;
290 fn get_quest(&self) -> &[QuestProperty];
292 fn take_quest(&mut self) -> Vec<QuestProperty>;
294}
295impl GameTrait for Game {
296 fn get_character_attribute(&self) -> &[CharacterAttributeProperty] {
297 self.r#character_attribute.as_slice()
298 }
299 fn take_character_attribute(&mut self) -> Vec<CharacterAttributeProperty> {
300 std::mem::take(&mut self.r#character_attribute)
301 }
302 fn get_game_item(&self) -> &[GameItemProperty] {
303 self.r#game_item.as_slice()
304 }
305 fn take_game_item(&mut self) -> Vec<GameItemProperty> {
306 std::mem::take(&mut self.r#game_item)
307 }
308 fn get_game_location(&self) -> &[GameLocationProperty] {
309 self.r#game_location.as_slice()
310 }
311 fn take_game_location(&mut self) -> Vec<GameLocationProperty> {
312 std::mem::take(&mut self.r#game_location)
313 }
314 fn get_number_of_players(&self) -> &[NumberOfPlayersProperty] {
315 self.r#number_of_players.as_slice()
316 }
317 fn take_number_of_players(&mut self) -> Vec<NumberOfPlayersProperty> {
318 std::mem::take(&mut self.r#number_of_players)
319 }
320 fn get_quest(&self) -> &[QuestProperty] {
321 self.r#quest.as_slice()
322 }
323 fn take_quest(&mut self) -> Vec<QuestProperty> {
324 std::mem::take(&mut self.r#quest)
325 }
326}
327impl CreativeWorkTrait for Game {
328 fn get_about(&self) -> &[AboutProperty] {
329 self.r#about.as_slice()
330 }
331 fn take_about(&mut self) -> Vec<AboutProperty> {
332 std::mem::take(&mut self.r#about)
333 }
334 fn get_abstract(&self) -> &[AbstractProperty] {
335 self.r#abstract.as_slice()
336 }
337 fn take_abstract(&mut self) -> Vec<AbstractProperty> {
338 std::mem::take(&mut self.r#abstract)
339 }
340 fn get_access_mode(&self) -> &[AccessModeProperty] {
341 self.r#access_mode.as_slice()
342 }
343 fn take_access_mode(&mut self) -> Vec<AccessModeProperty> {
344 std::mem::take(&mut self.r#access_mode)
345 }
346 fn get_access_mode_sufficient(&self) -> &[AccessModeSufficientProperty] {
347 self.r#access_mode_sufficient.as_slice()
348 }
349 fn take_access_mode_sufficient(&mut self) -> Vec<AccessModeSufficientProperty> {
350 std::mem::take(&mut self.r#access_mode_sufficient)
351 }
352 fn get_accessibility_api(&self) -> &[AccessibilityApiProperty] {
353 self.r#accessibility_api.as_slice()
354 }
355 fn take_accessibility_api(&mut self) -> Vec<AccessibilityApiProperty> {
356 std::mem::take(&mut self.r#accessibility_api)
357 }
358 fn get_accessibility_control(&self) -> &[AccessibilityControlProperty] {
359 self.r#accessibility_control.as_slice()
360 }
361 fn take_accessibility_control(&mut self) -> Vec<AccessibilityControlProperty> {
362 std::mem::take(&mut self.r#accessibility_control)
363 }
364 fn get_accessibility_feature(&self) -> &[AccessibilityFeatureProperty] {
365 self.r#accessibility_feature.as_slice()
366 }
367 fn take_accessibility_feature(&mut self) -> Vec<AccessibilityFeatureProperty> {
368 std::mem::take(&mut self.r#accessibility_feature)
369 }
370 fn get_accessibility_hazard(&self) -> &[AccessibilityHazardProperty] {
371 self.r#accessibility_hazard.as_slice()
372 }
373 fn take_accessibility_hazard(&mut self) -> Vec<AccessibilityHazardProperty> {
374 std::mem::take(&mut self.r#accessibility_hazard)
375 }
376 fn get_accessibility_summary(&self) -> &[AccessibilitySummaryProperty] {
377 self.r#accessibility_summary.as_slice()
378 }
379 fn take_accessibility_summary(&mut self) -> Vec<AccessibilitySummaryProperty> {
380 std::mem::take(&mut self.r#accessibility_summary)
381 }
382 fn get_accountable_person(&self) -> &[AccountablePersonProperty] {
383 self.r#accountable_person.as_slice()
384 }
385 fn take_accountable_person(&mut self) -> Vec<AccountablePersonProperty> {
386 std::mem::take(&mut self.r#accountable_person)
387 }
388 fn get_acquire_license_page(&self) -> &[AcquireLicensePageProperty] {
389 self.r#acquire_license_page.as_slice()
390 }
391 fn take_acquire_license_page(&mut self) -> Vec<AcquireLicensePageProperty> {
392 std::mem::take(&mut self.r#acquire_license_page)
393 }
394 fn get_aggregate_rating(&self) -> &[AggregateRatingProperty] {
395 self.r#aggregate_rating.as_slice()
396 }
397 fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty> {
398 std::mem::take(&mut self.r#aggregate_rating)
399 }
400 fn get_alternative_headline(&self) -> &[AlternativeHeadlineProperty] {
401 self.r#alternative_headline.as_slice()
402 }
403 fn take_alternative_headline(&mut self) -> Vec<AlternativeHeadlineProperty> {
404 std::mem::take(&mut self.r#alternative_headline)
405 }
406 fn get_archived_at(&self) -> &[ArchivedAtProperty] {
407 self.r#archived_at.as_slice()
408 }
409 fn take_archived_at(&mut self) -> Vec<ArchivedAtProperty> {
410 std::mem::take(&mut self.r#archived_at)
411 }
412 fn get_assesses(&self) -> &[AssessesProperty] {
413 self.r#assesses.as_slice()
414 }
415 fn take_assesses(&mut self) -> Vec<AssessesProperty> {
416 std::mem::take(&mut self.r#assesses)
417 }
418 fn get_associated_media(&self) -> &[AssociatedMediaProperty] {
419 self.r#associated_media.as_slice()
420 }
421 fn take_associated_media(&mut self) -> Vec<AssociatedMediaProperty> {
422 std::mem::take(&mut self.r#associated_media)
423 }
424 fn get_audience(&self) -> &[AudienceProperty] {
425 self.r#audience.as_slice()
426 }
427 fn take_audience(&mut self) -> Vec<AudienceProperty> {
428 std::mem::take(&mut self.r#audience)
429 }
430 fn get_audio(&self) -> &[AudioProperty] {
431 self.r#audio.as_slice()
432 }
433 fn take_audio(&mut self) -> Vec<AudioProperty> {
434 std::mem::take(&mut self.r#audio)
435 }
436 fn get_author(&self) -> &[AuthorProperty] {
437 self.r#author.as_slice()
438 }
439 fn take_author(&mut self) -> Vec<AuthorProperty> {
440 std::mem::take(&mut self.r#author)
441 }
442 fn get_award(&self) -> &[AwardProperty] {
443 self.r#award.as_slice()
444 }
445 fn take_award(&mut self) -> Vec<AwardProperty> {
446 std::mem::take(&mut self.r#award)
447 }
448 fn get_awards(&self) -> &[AwardsProperty] {
449 self.r#awards.as_slice()
450 }
451 fn take_awards(&mut self) -> Vec<AwardsProperty> {
452 std::mem::take(&mut self.r#awards)
453 }
454 fn get_character(&self) -> &[CharacterProperty] {
455 self.r#character.as_slice()
456 }
457 fn take_character(&mut self) -> Vec<CharacterProperty> {
458 std::mem::take(&mut self.r#character)
459 }
460 fn get_citation(&self) -> &[CitationProperty] {
461 self.r#citation.as_slice()
462 }
463 fn take_citation(&mut self) -> Vec<CitationProperty> {
464 std::mem::take(&mut self.r#citation)
465 }
466 fn get_comment(&self) -> &[CommentProperty] {
467 self.r#comment.as_slice()
468 }
469 fn take_comment(&mut self) -> Vec<CommentProperty> {
470 std::mem::take(&mut self.r#comment)
471 }
472 fn get_comment_count(&self) -> &[CommentCountProperty] {
473 self.r#comment_count.as_slice()
474 }
475 fn take_comment_count(&mut self) -> Vec<CommentCountProperty> {
476 std::mem::take(&mut self.r#comment_count)
477 }
478 fn get_conditions_of_access(&self) -> &[ConditionsOfAccessProperty] {
479 self.r#conditions_of_access.as_slice()
480 }
481 fn take_conditions_of_access(&mut self) -> Vec<ConditionsOfAccessProperty> {
482 std::mem::take(&mut self.r#conditions_of_access)
483 }
484 fn get_content_location(&self) -> &[ContentLocationProperty] {
485 self.r#content_location.as_slice()
486 }
487 fn take_content_location(&mut self) -> Vec<ContentLocationProperty> {
488 std::mem::take(&mut self.r#content_location)
489 }
490 fn get_content_rating(&self) -> &[ContentRatingProperty] {
491 self.r#content_rating.as_slice()
492 }
493 fn take_content_rating(&mut self) -> Vec<ContentRatingProperty> {
494 std::mem::take(&mut self.r#content_rating)
495 }
496 fn get_content_reference_time(&self) -> &[ContentReferenceTimeProperty] {
497 self.r#content_reference_time.as_slice()
498 }
499 fn take_content_reference_time(&mut self) -> Vec<ContentReferenceTimeProperty> {
500 std::mem::take(&mut self.r#content_reference_time)
501 }
502 fn get_contributor(&self) -> &[ContributorProperty] {
503 self.r#contributor.as_slice()
504 }
505 fn take_contributor(&mut self) -> Vec<ContributorProperty> {
506 std::mem::take(&mut self.r#contributor)
507 }
508 fn get_copyright_holder(&self) -> &[CopyrightHolderProperty] {
509 self.r#copyright_holder.as_slice()
510 }
511 fn take_copyright_holder(&mut self) -> Vec<CopyrightHolderProperty> {
512 std::mem::take(&mut self.r#copyright_holder)
513 }
514 fn get_copyright_notice(&self) -> &[CopyrightNoticeProperty] {
515 self.r#copyright_notice.as_slice()
516 }
517 fn take_copyright_notice(&mut self) -> Vec<CopyrightNoticeProperty> {
518 std::mem::take(&mut self.r#copyright_notice)
519 }
520 fn get_copyright_year(&self) -> &[CopyrightYearProperty] {
521 self.r#copyright_year.as_slice()
522 }
523 fn take_copyright_year(&mut self) -> Vec<CopyrightYearProperty> {
524 std::mem::take(&mut self.r#copyright_year)
525 }
526 fn get_correction(&self) -> &[CorrectionProperty] {
527 self.r#correction.as_slice()
528 }
529 fn take_correction(&mut self) -> Vec<CorrectionProperty> {
530 std::mem::take(&mut self.r#correction)
531 }
532 fn get_country_of_origin(&self) -> &[CountryOfOriginProperty] {
533 self.r#country_of_origin.as_slice()
534 }
535 fn take_country_of_origin(&mut self) -> Vec<CountryOfOriginProperty> {
536 std::mem::take(&mut self.r#country_of_origin)
537 }
538 fn get_creative_work_status(&self) -> &[CreativeWorkStatusProperty] {
539 self.r#creative_work_status.as_slice()
540 }
541 fn take_creative_work_status(&mut self) -> Vec<CreativeWorkStatusProperty> {
542 std::mem::take(&mut self.r#creative_work_status)
543 }
544 fn get_creator(&self) -> &[CreatorProperty] {
545 self.r#creator.as_slice()
546 }
547 fn take_creator(&mut self) -> Vec<CreatorProperty> {
548 std::mem::take(&mut self.r#creator)
549 }
550 fn get_credit_text(&self) -> &[CreditTextProperty] {
551 self.r#credit_text.as_slice()
552 }
553 fn take_credit_text(&mut self) -> Vec<CreditTextProperty> {
554 std::mem::take(&mut self.r#credit_text)
555 }
556 fn get_date_created(&self) -> &[DateCreatedProperty] {
557 self.r#date_created.as_slice()
558 }
559 fn take_date_created(&mut self) -> Vec<DateCreatedProperty> {
560 std::mem::take(&mut self.r#date_created)
561 }
562 fn get_date_modified(&self) -> &[DateModifiedProperty] {
563 self.r#date_modified.as_slice()
564 }
565 fn take_date_modified(&mut self) -> Vec<DateModifiedProperty> {
566 std::mem::take(&mut self.r#date_modified)
567 }
568 fn get_date_published(&self) -> &[DatePublishedProperty] {
569 self.r#date_published.as_slice()
570 }
571 fn take_date_published(&mut self) -> Vec<DatePublishedProperty> {
572 std::mem::take(&mut self.r#date_published)
573 }
574 fn get_discussion_url(&self) -> &[DiscussionUrlProperty] {
575 self.r#discussion_url.as_slice()
576 }
577 fn take_discussion_url(&mut self) -> Vec<DiscussionUrlProperty> {
578 std::mem::take(&mut self.r#discussion_url)
579 }
580 fn get_edit_eidr(&self) -> &[EditEidrProperty] {
581 self.r#edit_eidr.as_slice()
582 }
583 fn take_edit_eidr(&mut self) -> Vec<EditEidrProperty> {
584 std::mem::take(&mut self.r#edit_eidr)
585 }
586 fn get_editor(&self) -> &[EditorProperty] {
587 self.r#editor.as_slice()
588 }
589 fn take_editor(&mut self) -> Vec<EditorProperty> {
590 std::mem::take(&mut self.r#editor)
591 }
592 fn get_educational_alignment(&self) -> &[EducationalAlignmentProperty] {
593 self.r#educational_alignment.as_slice()
594 }
595 fn take_educational_alignment(&mut self) -> Vec<EducationalAlignmentProperty> {
596 std::mem::take(&mut self.r#educational_alignment)
597 }
598 fn get_educational_level(&self) -> &[EducationalLevelProperty] {
599 self.r#educational_level.as_slice()
600 }
601 fn take_educational_level(&mut self) -> Vec<EducationalLevelProperty> {
602 std::mem::take(&mut self.r#educational_level)
603 }
604 fn get_educational_use(&self) -> &[EducationalUseProperty] {
605 self.r#educational_use.as_slice()
606 }
607 fn take_educational_use(&mut self) -> Vec<EducationalUseProperty> {
608 std::mem::take(&mut self.r#educational_use)
609 }
610 fn get_encoding(&self) -> &[EncodingProperty] {
611 self.r#encoding.as_slice()
612 }
613 fn take_encoding(&mut self) -> Vec<EncodingProperty> {
614 std::mem::take(&mut self.r#encoding)
615 }
616 fn get_encoding_format(&self) -> &[EncodingFormatProperty] {
617 self.r#encoding_format.as_slice()
618 }
619 fn take_encoding_format(&mut self) -> Vec<EncodingFormatProperty> {
620 std::mem::take(&mut self.r#encoding_format)
621 }
622 fn get_encodings(&self) -> &[EncodingsProperty] {
623 self.r#encodings.as_slice()
624 }
625 fn take_encodings(&mut self) -> Vec<EncodingsProperty> {
626 std::mem::take(&mut self.r#encodings)
627 }
628 fn get_example_of_work(&self) -> &[ExampleOfWorkProperty] {
629 self.r#example_of_work.as_slice()
630 }
631 fn take_example_of_work(&mut self) -> Vec<ExampleOfWorkProperty> {
632 std::mem::take(&mut self.r#example_of_work)
633 }
634 fn get_expires(&self) -> &[ExpiresProperty] {
635 self.r#expires.as_slice()
636 }
637 fn take_expires(&mut self) -> Vec<ExpiresProperty> {
638 std::mem::take(&mut self.r#expires)
639 }
640 fn get_file_format(&self) -> &[FileFormatProperty] {
641 self.r#file_format.as_slice()
642 }
643 fn take_file_format(&mut self) -> Vec<FileFormatProperty> {
644 std::mem::take(&mut self.r#file_format)
645 }
646 fn get_funder(&self) -> &[FunderProperty] {
647 self.r#funder.as_slice()
648 }
649 fn take_funder(&mut self) -> Vec<FunderProperty> {
650 std::mem::take(&mut self.r#funder)
651 }
652 fn get_funding(&self) -> &[FundingProperty] {
653 self.r#funding.as_slice()
654 }
655 fn take_funding(&mut self) -> Vec<FundingProperty> {
656 std::mem::take(&mut self.r#funding)
657 }
658 fn get_genre(&self) -> &[GenreProperty] {
659 self.r#genre.as_slice()
660 }
661 fn take_genre(&mut self) -> Vec<GenreProperty> {
662 std::mem::take(&mut self.r#genre)
663 }
664 fn get_has_part(&self) -> &[HasPartProperty] {
665 self.r#has_part.as_slice()
666 }
667 fn take_has_part(&mut self) -> Vec<HasPartProperty> {
668 std::mem::take(&mut self.r#has_part)
669 }
670 fn get_headline(&self) -> &[HeadlineProperty] {
671 self.r#headline.as_slice()
672 }
673 fn take_headline(&mut self) -> Vec<HeadlineProperty> {
674 std::mem::take(&mut self.r#headline)
675 }
676 fn get_in_language(&self) -> &[InLanguageProperty] {
677 self.r#in_language.as_slice()
678 }
679 fn take_in_language(&mut self) -> Vec<InLanguageProperty> {
680 std::mem::take(&mut self.r#in_language)
681 }
682 fn get_interaction_statistic(&self) -> &[InteractionStatisticProperty] {
683 self.r#interaction_statistic.as_slice()
684 }
685 fn take_interaction_statistic(&mut self) -> Vec<InteractionStatisticProperty> {
686 std::mem::take(&mut self.r#interaction_statistic)
687 }
688 fn get_interactivity_type(&self) -> &[InteractivityTypeProperty] {
689 self.r#interactivity_type.as_slice()
690 }
691 fn take_interactivity_type(&mut self) -> Vec<InteractivityTypeProperty> {
692 std::mem::take(&mut self.r#interactivity_type)
693 }
694 fn get_interpreted_as_claim(&self) -> &[InterpretedAsClaimProperty] {
695 self.r#interpreted_as_claim.as_slice()
696 }
697 fn take_interpreted_as_claim(&mut self) -> Vec<InterpretedAsClaimProperty> {
698 std::mem::take(&mut self.r#interpreted_as_claim)
699 }
700 fn get_is_accessible_for_free(&self) -> &[IsAccessibleForFreeProperty] {
701 self.r#is_accessible_for_free.as_slice()
702 }
703 fn take_is_accessible_for_free(&mut self) -> Vec<IsAccessibleForFreeProperty> {
704 std::mem::take(&mut self.r#is_accessible_for_free)
705 }
706 fn get_is_based_on(&self) -> &[IsBasedOnProperty] {
707 self.r#is_based_on.as_slice()
708 }
709 fn take_is_based_on(&mut self) -> Vec<IsBasedOnProperty> {
710 std::mem::take(&mut self.r#is_based_on)
711 }
712 fn get_is_based_on_url(&self) -> &[IsBasedOnUrlProperty] {
713 self.r#is_based_on_url.as_slice()
714 }
715 fn take_is_based_on_url(&mut self) -> Vec<IsBasedOnUrlProperty> {
716 std::mem::take(&mut self.r#is_based_on_url)
717 }
718 fn get_is_family_friendly(&self) -> &[IsFamilyFriendlyProperty] {
719 self.r#is_family_friendly.as_slice()
720 }
721 fn take_is_family_friendly(&mut self) -> Vec<IsFamilyFriendlyProperty> {
722 std::mem::take(&mut self.r#is_family_friendly)
723 }
724 fn get_is_part_of(&self) -> &[IsPartOfProperty] {
725 self.r#is_part_of.as_slice()
726 }
727 fn take_is_part_of(&mut self) -> Vec<IsPartOfProperty> {
728 std::mem::take(&mut self.r#is_part_of)
729 }
730 fn get_keywords(&self) -> &[KeywordsProperty] {
731 self.r#keywords.as_slice()
732 }
733 fn take_keywords(&mut self) -> Vec<KeywordsProperty> {
734 std::mem::take(&mut self.r#keywords)
735 }
736 fn get_learning_resource_type(&self) -> &[LearningResourceTypeProperty] {
737 self.r#learning_resource_type.as_slice()
738 }
739 fn take_learning_resource_type(&mut self) -> Vec<LearningResourceTypeProperty> {
740 std::mem::take(&mut self.r#learning_resource_type)
741 }
742 fn get_license(&self) -> &[LicenseProperty] {
743 self.r#license.as_slice()
744 }
745 fn take_license(&mut self) -> Vec<LicenseProperty> {
746 std::mem::take(&mut self.r#license)
747 }
748 fn get_location_created(&self) -> &[LocationCreatedProperty] {
749 self.r#location_created.as_slice()
750 }
751 fn take_location_created(&mut self) -> Vec<LocationCreatedProperty> {
752 std::mem::take(&mut self.r#location_created)
753 }
754 fn get_main_entity(&self) -> &[MainEntityProperty] {
755 self.r#main_entity.as_slice()
756 }
757 fn take_main_entity(&mut self) -> Vec<MainEntityProperty> {
758 std::mem::take(&mut self.r#main_entity)
759 }
760 fn get_maintainer(&self) -> &[MaintainerProperty] {
761 self.r#maintainer.as_slice()
762 }
763 fn take_maintainer(&mut self) -> Vec<MaintainerProperty> {
764 std::mem::take(&mut self.r#maintainer)
765 }
766 fn get_material(&self) -> &[MaterialProperty] {
767 self.r#material.as_slice()
768 }
769 fn take_material(&mut self) -> Vec<MaterialProperty> {
770 std::mem::take(&mut self.r#material)
771 }
772 fn get_material_extent(&self) -> &[MaterialExtentProperty] {
773 self.r#material_extent.as_slice()
774 }
775 fn take_material_extent(&mut self) -> Vec<MaterialExtentProperty> {
776 std::mem::take(&mut self.r#material_extent)
777 }
778 fn get_mentions(&self) -> &[MentionsProperty] {
779 self.r#mentions.as_slice()
780 }
781 fn take_mentions(&mut self) -> Vec<MentionsProperty> {
782 std::mem::take(&mut self.r#mentions)
783 }
784 fn get_offers(&self) -> &[OffersProperty] {
785 self.r#offers.as_slice()
786 }
787 fn take_offers(&mut self) -> Vec<OffersProperty> {
788 std::mem::take(&mut self.r#offers)
789 }
790 fn get_pattern(&self) -> &[PatternProperty] {
791 self.r#pattern.as_slice()
792 }
793 fn take_pattern(&mut self) -> Vec<PatternProperty> {
794 std::mem::take(&mut self.r#pattern)
795 }
796 fn get_position(&self) -> &[PositionProperty] {
797 self.r#position.as_slice()
798 }
799 fn take_position(&mut self) -> Vec<PositionProperty> {
800 std::mem::take(&mut self.r#position)
801 }
802 fn get_producer(&self) -> &[ProducerProperty] {
803 self.r#producer.as_slice()
804 }
805 fn take_producer(&mut self) -> Vec<ProducerProperty> {
806 std::mem::take(&mut self.r#producer)
807 }
808 fn get_provider(&self) -> &[ProviderProperty] {
809 self.r#provider.as_slice()
810 }
811 fn take_provider(&mut self) -> Vec<ProviderProperty> {
812 std::mem::take(&mut self.r#provider)
813 }
814 fn get_publication(&self) -> &[PublicationProperty] {
815 self.r#publication.as_slice()
816 }
817 fn take_publication(&mut self) -> Vec<PublicationProperty> {
818 std::mem::take(&mut self.r#publication)
819 }
820 fn get_publisher(&self) -> &[PublisherProperty] {
821 self.r#publisher.as_slice()
822 }
823 fn take_publisher(&mut self) -> Vec<PublisherProperty> {
824 std::mem::take(&mut self.r#publisher)
825 }
826 fn get_publisher_imprint(&self) -> &[PublisherImprintProperty] {
827 self.r#publisher_imprint.as_slice()
828 }
829 fn take_publisher_imprint(&mut self) -> Vec<PublisherImprintProperty> {
830 std::mem::take(&mut self.r#publisher_imprint)
831 }
832 fn get_publishing_principles(&self) -> &[PublishingPrinciplesProperty] {
833 self.r#publishing_principles.as_slice()
834 }
835 fn take_publishing_principles(&mut self) -> Vec<PublishingPrinciplesProperty> {
836 std::mem::take(&mut self.r#publishing_principles)
837 }
838 fn get_recorded_at(&self) -> &[RecordedAtProperty] {
839 self.r#recorded_at.as_slice()
840 }
841 fn take_recorded_at(&mut self) -> Vec<RecordedAtProperty> {
842 std::mem::take(&mut self.r#recorded_at)
843 }
844 fn get_released_event(&self) -> &[ReleasedEventProperty] {
845 self.r#released_event.as_slice()
846 }
847 fn take_released_event(&mut self) -> Vec<ReleasedEventProperty> {
848 std::mem::take(&mut self.r#released_event)
849 }
850 fn get_review(&self) -> &[ReviewProperty] {
851 self.r#review.as_slice()
852 }
853 fn take_review(&mut self) -> Vec<ReviewProperty> {
854 std::mem::take(&mut self.r#review)
855 }
856 fn get_reviews(&self) -> &[ReviewsProperty] {
857 self.r#reviews.as_slice()
858 }
859 fn take_reviews(&mut self) -> Vec<ReviewsProperty> {
860 std::mem::take(&mut self.r#reviews)
861 }
862 fn get_schema_version(&self) -> &[SchemaVersionProperty] {
863 self.r#schema_version.as_slice()
864 }
865 fn take_schema_version(&mut self) -> Vec<SchemaVersionProperty> {
866 std::mem::take(&mut self.r#schema_version)
867 }
868 fn get_sd_date_published(&self) -> &[SdDatePublishedProperty] {
869 self.r#sd_date_published.as_slice()
870 }
871 fn take_sd_date_published(&mut self) -> Vec<SdDatePublishedProperty> {
872 std::mem::take(&mut self.r#sd_date_published)
873 }
874 fn get_sd_license(&self) -> &[SdLicenseProperty] {
875 self.r#sd_license.as_slice()
876 }
877 fn take_sd_license(&mut self) -> Vec<SdLicenseProperty> {
878 std::mem::take(&mut self.r#sd_license)
879 }
880 fn get_sd_publisher(&self) -> &[SdPublisherProperty] {
881 self.r#sd_publisher.as_slice()
882 }
883 fn take_sd_publisher(&mut self) -> Vec<SdPublisherProperty> {
884 std::mem::take(&mut self.r#sd_publisher)
885 }
886 fn get_size(&self) -> &[SizeProperty] {
887 self.r#size.as_slice()
888 }
889 fn take_size(&mut self) -> Vec<SizeProperty> {
890 std::mem::take(&mut self.r#size)
891 }
892 fn get_source_organization(&self) -> &[SourceOrganizationProperty] {
893 self.r#source_organization.as_slice()
894 }
895 fn take_source_organization(&mut self) -> Vec<SourceOrganizationProperty> {
896 std::mem::take(&mut self.r#source_organization)
897 }
898 fn get_spatial(&self) -> &[SpatialProperty] {
899 self.r#spatial.as_slice()
900 }
901 fn take_spatial(&mut self) -> Vec<SpatialProperty> {
902 std::mem::take(&mut self.r#spatial)
903 }
904 fn get_spatial_coverage(&self) -> &[SpatialCoverageProperty] {
905 self.r#spatial_coverage.as_slice()
906 }
907 fn take_spatial_coverage(&mut self) -> Vec<SpatialCoverageProperty> {
908 std::mem::take(&mut self.r#spatial_coverage)
909 }
910 fn get_sponsor(&self) -> &[SponsorProperty] {
911 self.r#sponsor.as_slice()
912 }
913 fn take_sponsor(&mut self) -> Vec<SponsorProperty> {
914 std::mem::take(&mut self.r#sponsor)
915 }
916 fn get_teaches(&self) -> &[TeachesProperty] {
917 self.r#teaches.as_slice()
918 }
919 fn take_teaches(&mut self) -> Vec<TeachesProperty> {
920 std::mem::take(&mut self.r#teaches)
921 }
922 fn get_temporal(&self) -> &[TemporalProperty] {
923 self.r#temporal.as_slice()
924 }
925 fn take_temporal(&mut self) -> Vec<TemporalProperty> {
926 std::mem::take(&mut self.r#temporal)
927 }
928 fn get_temporal_coverage(&self) -> &[TemporalCoverageProperty] {
929 self.r#temporal_coverage.as_slice()
930 }
931 fn take_temporal_coverage(&mut self) -> Vec<TemporalCoverageProperty> {
932 std::mem::take(&mut self.r#temporal_coverage)
933 }
934 fn get_text(&self) -> &[TextProperty] {
935 self.r#text.as_slice()
936 }
937 fn take_text(&mut self) -> Vec<TextProperty> {
938 std::mem::take(&mut self.r#text)
939 }
940 fn get_thumbnail(&self) -> &[ThumbnailProperty] {
941 self.r#thumbnail.as_slice()
942 }
943 fn take_thumbnail(&mut self) -> Vec<ThumbnailProperty> {
944 std::mem::take(&mut self.r#thumbnail)
945 }
946 fn get_thumbnail_url(&self) -> &[ThumbnailUrlProperty] {
947 self.r#thumbnail_url.as_slice()
948 }
949 fn take_thumbnail_url(&mut self) -> Vec<ThumbnailUrlProperty> {
950 std::mem::take(&mut self.r#thumbnail_url)
951 }
952 fn get_time_required(&self) -> &[TimeRequiredProperty] {
953 self.r#time_required.as_slice()
954 }
955 fn take_time_required(&mut self) -> Vec<TimeRequiredProperty> {
956 std::mem::take(&mut self.r#time_required)
957 }
958 fn get_translation_of_work(&self) -> &[TranslationOfWorkProperty] {
959 self.r#translation_of_work.as_slice()
960 }
961 fn take_translation_of_work(&mut self) -> Vec<TranslationOfWorkProperty> {
962 std::mem::take(&mut self.r#translation_of_work)
963 }
964 fn get_translator(&self) -> &[TranslatorProperty] {
965 self.r#translator.as_slice()
966 }
967 fn take_translator(&mut self) -> Vec<TranslatorProperty> {
968 std::mem::take(&mut self.r#translator)
969 }
970 fn get_typical_age_range(&self) -> &[TypicalAgeRangeProperty] {
971 self.r#typical_age_range.as_slice()
972 }
973 fn take_typical_age_range(&mut self) -> Vec<TypicalAgeRangeProperty> {
974 std::mem::take(&mut self.r#typical_age_range)
975 }
976 fn get_usage_info(&self) -> &[UsageInfoProperty] {
977 self.r#usage_info.as_slice()
978 }
979 fn take_usage_info(&mut self) -> Vec<UsageInfoProperty> {
980 std::mem::take(&mut self.r#usage_info)
981 }
982 fn get_version(&self) -> &[VersionProperty] {
983 self.r#version.as_slice()
984 }
985 fn take_version(&mut self) -> Vec<VersionProperty> {
986 std::mem::take(&mut self.r#version)
987 }
988 fn get_video(&self) -> &[VideoProperty] {
989 self.r#video.as_slice()
990 }
991 fn take_video(&mut self) -> Vec<VideoProperty> {
992 std::mem::take(&mut self.r#video)
993 }
994 fn get_work_example(&self) -> &[WorkExampleProperty] {
995 self.r#work_example.as_slice()
996 }
997 fn take_work_example(&mut self) -> Vec<WorkExampleProperty> {
998 std::mem::take(&mut self.r#work_example)
999 }
1000 fn get_work_translation(&self) -> &[WorkTranslationProperty] {
1001 self.r#work_translation.as_slice()
1002 }
1003 fn take_work_translation(&mut self) -> Vec<WorkTranslationProperty> {
1004 std::mem::take(&mut self.r#work_translation)
1005 }
1006}
1007impl ThingTrait for Game {
1008 fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
1009 self.r#additional_type.as_slice()
1010 }
1011 fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
1012 std::mem::take(&mut self.r#additional_type)
1013 }
1014 fn get_alternate_name(&self) -> &[AlternateNameProperty] {
1015 self.r#alternate_name.as_slice()
1016 }
1017 fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
1018 std::mem::take(&mut self.r#alternate_name)
1019 }
1020 fn get_description(&self) -> &[DescriptionProperty] {
1021 self.r#description.as_slice()
1022 }
1023 fn take_description(&mut self) -> Vec<DescriptionProperty> {
1024 std::mem::take(&mut self.r#description)
1025 }
1026 fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
1027 self.r#disambiguating_description.as_slice()
1028 }
1029 fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
1030 std::mem::take(&mut self.r#disambiguating_description)
1031 }
1032 fn get_identifier(&self) -> &[IdentifierProperty] {
1033 self.r#identifier.as_slice()
1034 }
1035 fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
1036 std::mem::take(&mut self.r#identifier)
1037 }
1038 fn get_image(&self) -> &[ImageProperty] {
1039 self.r#image.as_slice()
1040 }
1041 fn take_image(&mut self) -> Vec<ImageProperty> {
1042 std::mem::take(&mut self.r#image)
1043 }
1044 fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
1045 self.r#main_entity_of_page.as_slice()
1046 }
1047 fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
1048 std::mem::take(&mut self.r#main_entity_of_page)
1049 }
1050 fn get_name(&self) -> &[NameProperty] {
1051 self.r#name.as_slice()
1052 }
1053 fn take_name(&mut self) -> Vec<NameProperty> {
1054 std::mem::take(&mut self.r#name)
1055 }
1056 fn get_potential_action(&self) -> &[PotentialActionProperty] {
1057 self.r#potential_action.as_slice()
1058 }
1059 fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
1060 std::mem::take(&mut self.r#potential_action)
1061 }
1062 fn get_same_as(&self) -> &[SameAsProperty] {
1063 self.r#same_as.as_slice()
1064 }
1065 fn take_same_as(&mut self) -> Vec<SameAsProperty> {
1066 std::mem::take(&mut self.r#same_as)
1067 }
1068 fn get_subject_of(&self) -> &[SubjectOfProperty] {
1069 self.r#subject_of.as_slice()
1070 }
1071 fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
1072 std::mem::take(&mut self.r#subject_of)
1073 }
1074 fn get_url(&self) -> &[UrlProperty] {
1075 self.r#url.as_slice()
1076 }
1077 fn take_url(&mut self) -> Vec<UrlProperty> {
1078 std::mem::take(&mut self.r#url)
1079 }
1080}
1081#[cfg(feature = "serde")]
1082mod serde {
1083 use std::{fmt, fmt::Formatter};
1084
1085 use ::serde::{
1086 de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
1087 };
1088
1089 use super::*;
1090 impl Serialize for Game {
1091 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1092 where
1093 S: Serializer,
1094 {
1095 let len: usize = [
1096 !Vec::is_empty(&self.r#character_attribute) as usize,
1097 !Vec::is_empty(&self.r#game_item) as usize,
1098 !Vec::is_empty(&self.r#game_location) as usize,
1099 !Vec::is_empty(&self.r#number_of_players) as usize,
1100 !Vec::is_empty(&self.r#quest) as usize,
1101 !Vec::is_empty(&self.r#about) as usize,
1102 !Vec::is_empty(&self.r#abstract) as usize,
1103 !Vec::is_empty(&self.r#access_mode) as usize,
1104 !Vec::is_empty(&self.r#access_mode_sufficient) as usize,
1105 !Vec::is_empty(&self.r#accessibility_api) as usize,
1106 !Vec::is_empty(&self.r#accessibility_control) as usize,
1107 !Vec::is_empty(&self.r#accessibility_feature) as usize,
1108 !Vec::is_empty(&self.r#accessibility_hazard) as usize,
1109 !Vec::is_empty(&self.r#accessibility_summary) as usize,
1110 !Vec::is_empty(&self.r#accountable_person) as usize,
1111 !Vec::is_empty(&self.r#acquire_license_page) as usize,
1112 !Vec::is_empty(&self.r#aggregate_rating) as usize,
1113 !Vec::is_empty(&self.r#alternative_headline) as usize,
1114 !Vec::is_empty(&self.r#archived_at) as usize,
1115 !Vec::is_empty(&self.r#assesses) as usize,
1116 !Vec::is_empty(&self.r#associated_media) as usize,
1117 !Vec::is_empty(&self.r#audience) as usize,
1118 !Vec::is_empty(&self.r#audio) as usize,
1119 !Vec::is_empty(&self.r#author) as usize,
1120 !Vec::is_empty(&self.r#award) as usize,
1121 !Vec::is_empty(&self.r#awards) as usize,
1122 !Vec::is_empty(&self.r#character) as usize,
1123 !Vec::is_empty(&self.r#citation) as usize,
1124 !Vec::is_empty(&self.r#comment) as usize,
1125 !Vec::is_empty(&self.r#comment_count) as usize,
1126 !Vec::is_empty(&self.r#conditions_of_access) as usize,
1127 !Vec::is_empty(&self.r#content_location) as usize,
1128 !Vec::is_empty(&self.r#content_rating) as usize,
1129 !Vec::is_empty(&self.r#content_reference_time) as usize,
1130 !Vec::is_empty(&self.r#contributor) as usize,
1131 !Vec::is_empty(&self.r#copyright_holder) as usize,
1132 !Vec::is_empty(&self.r#copyright_notice) as usize,
1133 !Vec::is_empty(&self.r#copyright_year) as usize,
1134 !Vec::is_empty(&self.r#correction) as usize,
1135 !Vec::is_empty(&self.r#country_of_origin) as usize,
1136 !Vec::is_empty(&self.r#creative_work_status) as usize,
1137 !Vec::is_empty(&self.r#creator) as usize,
1138 !Vec::is_empty(&self.r#credit_text) as usize,
1139 !Vec::is_empty(&self.r#date_created) as usize,
1140 !Vec::is_empty(&self.r#date_modified) as usize,
1141 !Vec::is_empty(&self.r#date_published) as usize,
1142 !Vec::is_empty(&self.r#discussion_url) as usize,
1143 !Vec::is_empty(&self.r#edit_eidr) as usize,
1144 !Vec::is_empty(&self.r#editor) as usize,
1145 !Vec::is_empty(&self.r#educational_alignment) as usize,
1146 !Vec::is_empty(&self.r#educational_level) as usize,
1147 !Vec::is_empty(&self.r#educational_use) as usize,
1148 !Vec::is_empty(&self.r#encoding) as usize,
1149 !Vec::is_empty(&self.r#encoding_format) as usize,
1150 !Vec::is_empty(&self.r#encodings) as usize,
1151 !Vec::is_empty(&self.r#example_of_work) as usize,
1152 !Vec::is_empty(&self.r#expires) as usize,
1153 !Vec::is_empty(&self.r#file_format) as usize,
1154 !Vec::is_empty(&self.r#funder) as usize,
1155 !Vec::is_empty(&self.r#funding) as usize,
1156 !Vec::is_empty(&self.r#genre) as usize,
1157 !Vec::is_empty(&self.r#has_part) as usize,
1158 !Vec::is_empty(&self.r#headline) as usize,
1159 !Vec::is_empty(&self.r#in_language) as usize,
1160 !Vec::is_empty(&self.r#interaction_statistic) as usize,
1161 !Vec::is_empty(&self.r#interactivity_type) as usize,
1162 !Vec::is_empty(&self.r#interpreted_as_claim) as usize,
1163 !Vec::is_empty(&self.r#is_accessible_for_free) as usize,
1164 !Vec::is_empty(&self.r#is_based_on) as usize,
1165 !Vec::is_empty(&self.r#is_based_on_url) as usize,
1166 !Vec::is_empty(&self.r#is_family_friendly) as usize,
1167 !Vec::is_empty(&self.r#is_part_of) as usize,
1168 !Vec::is_empty(&self.r#keywords) as usize,
1169 !Vec::is_empty(&self.r#learning_resource_type) as usize,
1170 !Vec::is_empty(&self.r#license) as usize,
1171 !Vec::is_empty(&self.r#location_created) as usize,
1172 !Vec::is_empty(&self.r#main_entity) as usize,
1173 !Vec::is_empty(&self.r#maintainer) as usize,
1174 !Vec::is_empty(&self.r#material) as usize,
1175 !Vec::is_empty(&self.r#material_extent) as usize,
1176 !Vec::is_empty(&self.r#mentions) as usize,
1177 !Vec::is_empty(&self.r#offers) as usize,
1178 !Vec::is_empty(&self.r#pattern) as usize,
1179 !Vec::is_empty(&self.r#position) as usize,
1180 !Vec::is_empty(&self.r#producer) as usize,
1181 !Vec::is_empty(&self.r#provider) as usize,
1182 !Vec::is_empty(&self.r#publication) as usize,
1183 !Vec::is_empty(&self.r#publisher) as usize,
1184 !Vec::is_empty(&self.r#publisher_imprint) as usize,
1185 !Vec::is_empty(&self.r#publishing_principles) as usize,
1186 !Vec::is_empty(&self.r#recorded_at) as usize,
1187 !Vec::is_empty(&self.r#released_event) as usize,
1188 !Vec::is_empty(&self.r#review) as usize,
1189 !Vec::is_empty(&self.r#reviews) as usize,
1190 !Vec::is_empty(&self.r#schema_version) as usize,
1191 !Vec::is_empty(&self.r#sd_date_published) as usize,
1192 !Vec::is_empty(&self.r#sd_license) as usize,
1193 !Vec::is_empty(&self.r#sd_publisher) as usize,
1194 !Vec::is_empty(&self.r#size) as usize,
1195 !Vec::is_empty(&self.r#source_organization) as usize,
1196 !Vec::is_empty(&self.r#spatial) as usize,
1197 !Vec::is_empty(&self.r#spatial_coverage) as usize,
1198 !Vec::is_empty(&self.r#sponsor) as usize,
1199 !Vec::is_empty(&self.r#teaches) as usize,
1200 !Vec::is_empty(&self.r#temporal) as usize,
1201 !Vec::is_empty(&self.r#temporal_coverage) as usize,
1202 !Vec::is_empty(&self.r#text) as usize,
1203 !Vec::is_empty(&self.r#thumbnail) as usize,
1204 !Vec::is_empty(&self.r#thumbnail_url) as usize,
1205 !Vec::is_empty(&self.r#time_required) as usize,
1206 !Vec::is_empty(&self.r#translation_of_work) as usize,
1207 !Vec::is_empty(&self.r#translator) as usize,
1208 !Vec::is_empty(&self.r#typical_age_range) as usize,
1209 !Vec::is_empty(&self.r#usage_info) as usize,
1210 !Vec::is_empty(&self.r#version) as usize,
1211 !Vec::is_empty(&self.r#video) as usize,
1212 !Vec::is_empty(&self.r#work_example) as usize,
1213 !Vec::is_empty(&self.r#work_translation) as usize,
1214 !Vec::is_empty(&self.r#additional_type) as usize,
1215 !Vec::is_empty(&self.r#alternate_name) as usize,
1216 !Vec::is_empty(&self.r#description) as usize,
1217 !Vec::is_empty(&self.r#disambiguating_description) as usize,
1218 !Vec::is_empty(&self.r#identifier) as usize,
1219 !Vec::is_empty(&self.r#image) as usize,
1220 !Vec::is_empty(&self.r#main_entity_of_page) as usize,
1221 !Vec::is_empty(&self.r#name) as usize,
1222 !Vec::is_empty(&self.r#potential_action) as usize,
1223 !Vec::is_empty(&self.r#same_as) as usize,
1224 !Vec::is_empty(&self.r#subject_of) as usize,
1225 !Vec::is_empty(&self.r#url) as usize,
1226 ]
1227 .iter()
1228 .sum();
1229 let mut serialize_struct = Serializer::serialize_struct(serializer, "Game", len)?;
1230 if !Vec::is_empty(&self.r#character_attribute) {
1231 serialize_struct.serialize_field("characterAttribute", {
1232 struct SerializeWith<'a>(&'a Vec<CharacterAttributeProperty>);
1233 impl<'a> Serialize for SerializeWith<'a> {
1234 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1235 where
1236 S: Serializer,
1237 {
1238 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1239 self.0, serializer,
1240 )
1241 }
1242 }
1243 &SerializeWith(&self.r#character_attribute)
1244 })?;
1245 } else {
1246 serialize_struct.skip_field("characterAttribute")?;
1247 }
1248 if !Vec::is_empty(&self.r#game_item) {
1249 serialize_struct.serialize_field("gameItem", {
1250 struct SerializeWith<'a>(&'a Vec<GameItemProperty>);
1251 impl<'a> Serialize for SerializeWith<'a> {
1252 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1253 where
1254 S: Serializer,
1255 {
1256 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1257 self.0, serializer,
1258 )
1259 }
1260 }
1261 &SerializeWith(&self.r#game_item)
1262 })?;
1263 } else {
1264 serialize_struct.skip_field("gameItem")?;
1265 }
1266 if !Vec::is_empty(&self.r#game_location) {
1267 serialize_struct.serialize_field("gameLocation", {
1268 struct SerializeWith<'a>(&'a Vec<GameLocationProperty>);
1269 impl<'a> Serialize for SerializeWith<'a> {
1270 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1271 where
1272 S: Serializer,
1273 {
1274 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1275 self.0, serializer,
1276 )
1277 }
1278 }
1279 &SerializeWith(&self.r#game_location)
1280 })?;
1281 } else {
1282 serialize_struct.skip_field("gameLocation")?;
1283 }
1284 if !Vec::is_empty(&self.r#number_of_players) {
1285 serialize_struct.serialize_field("numberOfPlayers", {
1286 struct SerializeWith<'a>(&'a Vec<NumberOfPlayersProperty>);
1287 impl<'a> Serialize for SerializeWith<'a> {
1288 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1289 where
1290 S: Serializer,
1291 {
1292 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1293 self.0, serializer,
1294 )
1295 }
1296 }
1297 &SerializeWith(&self.r#number_of_players)
1298 })?;
1299 } else {
1300 serialize_struct.skip_field("numberOfPlayers")?;
1301 }
1302 if !Vec::is_empty(&self.r#quest) {
1303 serialize_struct.serialize_field("quest", {
1304 struct SerializeWith<'a>(&'a Vec<QuestProperty>);
1305 impl<'a> Serialize for SerializeWith<'a> {
1306 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1307 where
1308 S: Serializer,
1309 {
1310 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1311 self.0, serializer,
1312 )
1313 }
1314 }
1315 &SerializeWith(&self.r#quest)
1316 })?;
1317 } else {
1318 serialize_struct.skip_field("quest")?;
1319 }
1320 if !Vec::is_empty(&self.r#about) {
1321 serialize_struct.serialize_field("about", {
1322 struct SerializeWith<'a>(&'a Vec<AboutProperty>);
1323 impl<'a> Serialize for SerializeWith<'a> {
1324 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1325 where
1326 S: Serializer,
1327 {
1328 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1329 self.0, serializer,
1330 )
1331 }
1332 }
1333 &SerializeWith(&self.r#about)
1334 })?;
1335 } else {
1336 serialize_struct.skip_field("about")?;
1337 }
1338 if !Vec::is_empty(&self.r#abstract) {
1339 serialize_struct.serialize_field("abstract", {
1340 struct SerializeWith<'a>(&'a Vec<AbstractProperty>);
1341 impl<'a> Serialize for SerializeWith<'a> {
1342 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1343 where
1344 S: Serializer,
1345 {
1346 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1347 self.0, serializer,
1348 )
1349 }
1350 }
1351 &SerializeWith(&self.r#abstract)
1352 })?;
1353 } else {
1354 serialize_struct.skip_field("abstract")?;
1355 }
1356 if !Vec::is_empty(&self.r#access_mode) {
1357 serialize_struct.serialize_field("accessMode", {
1358 struct SerializeWith<'a>(&'a Vec<AccessModeProperty>);
1359 impl<'a> Serialize for SerializeWith<'a> {
1360 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1361 where
1362 S: Serializer,
1363 {
1364 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1365 self.0, serializer,
1366 )
1367 }
1368 }
1369 &SerializeWith(&self.r#access_mode)
1370 })?;
1371 } else {
1372 serialize_struct.skip_field("accessMode")?;
1373 }
1374 if !Vec::is_empty(&self.r#access_mode_sufficient) {
1375 serialize_struct.serialize_field("accessModeSufficient", {
1376 struct SerializeWith<'a>(&'a Vec<AccessModeSufficientProperty>);
1377 impl<'a> Serialize for SerializeWith<'a> {
1378 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1379 where
1380 S: Serializer,
1381 {
1382 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1383 self.0, serializer,
1384 )
1385 }
1386 }
1387 &SerializeWith(&self.r#access_mode_sufficient)
1388 })?;
1389 } else {
1390 serialize_struct.skip_field("accessModeSufficient")?;
1391 }
1392 if !Vec::is_empty(&self.r#accessibility_api) {
1393 serialize_struct.serialize_field("accessibilityAPI", {
1394 struct SerializeWith<'a>(&'a Vec<AccessibilityApiProperty>);
1395 impl<'a> Serialize for SerializeWith<'a> {
1396 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1397 where
1398 S: Serializer,
1399 {
1400 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1401 self.0, serializer,
1402 )
1403 }
1404 }
1405 &SerializeWith(&self.r#accessibility_api)
1406 })?;
1407 } else {
1408 serialize_struct.skip_field("accessibilityAPI")?;
1409 }
1410 if !Vec::is_empty(&self.r#accessibility_control) {
1411 serialize_struct.serialize_field("accessibilityControl", {
1412 struct SerializeWith<'a>(&'a Vec<AccessibilityControlProperty>);
1413 impl<'a> Serialize for SerializeWith<'a> {
1414 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1415 where
1416 S: Serializer,
1417 {
1418 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1419 self.0, serializer,
1420 )
1421 }
1422 }
1423 &SerializeWith(&self.r#accessibility_control)
1424 })?;
1425 } else {
1426 serialize_struct.skip_field("accessibilityControl")?;
1427 }
1428 if !Vec::is_empty(&self.r#accessibility_feature) {
1429 serialize_struct.serialize_field("accessibilityFeature", {
1430 struct SerializeWith<'a>(&'a Vec<AccessibilityFeatureProperty>);
1431 impl<'a> Serialize for SerializeWith<'a> {
1432 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1433 where
1434 S: Serializer,
1435 {
1436 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1437 self.0, serializer,
1438 )
1439 }
1440 }
1441 &SerializeWith(&self.r#accessibility_feature)
1442 })?;
1443 } else {
1444 serialize_struct.skip_field("accessibilityFeature")?;
1445 }
1446 if !Vec::is_empty(&self.r#accessibility_hazard) {
1447 serialize_struct.serialize_field("accessibilityHazard", {
1448 struct SerializeWith<'a>(&'a Vec<AccessibilityHazardProperty>);
1449 impl<'a> Serialize for SerializeWith<'a> {
1450 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1451 where
1452 S: Serializer,
1453 {
1454 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1455 self.0, serializer,
1456 )
1457 }
1458 }
1459 &SerializeWith(&self.r#accessibility_hazard)
1460 })?;
1461 } else {
1462 serialize_struct.skip_field("accessibilityHazard")?;
1463 }
1464 if !Vec::is_empty(&self.r#accessibility_summary) {
1465 serialize_struct.serialize_field("accessibilitySummary", {
1466 struct SerializeWith<'a>(&'a Vec<AccessibilitySummaryProperty>);
1467 impl<'a> Serialize for SerializeWith<'a> {
1468 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1469 where
1470 S: Serializer,
1471 {
1472 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1473 self.0, serializer,
1474 )
1475 }
1476 }
1477 &SerializeWith(&self.r#accessibility_summary)
1478 })?;
1479 } else {
1480 serialize_struct.skip_field("accessibilitySummary")?;
1481 }
1482 if !Vec::is_empty(&self.r#accountable_person) {
1483 serialize_struct.serialize_field("accountablePerson", {
1484 struct SerializeWith<'a>(&'a Vec<AccountablePersonProperty>);
1485 impl<'a> Serialize for SerializeWith<'a> {
1486 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1487 where
1488 S: Serializer,
1489 {
1490 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1491 self.0, serializer,
1492 )
1493 }
1494 }
1495 &SerializeWith(&self.r#accountable_person)
1496 })?;
1497 } else {
1498 serialize_struct.skip_field("accountablePerson")?;
1499 }
1500 if !Vec::is_empty(&self.r#acquire_license_page) {
1501 serialize_struct.serialize_field("acquireLicensePage", {
1502 struct SerializeWith<'a>(&'a Vec<AcquireLicensePageProperty>);
1503 impl<'a> Serialize for SerializeWith<'a> {
1504 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1505 where
1506 S: Serializer,
1507 {
1508 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1509 self.0, serializer,
1510 )
1511 }
1512 }
1513 &SerializeWith(&self.r#acquire_license_page)
1514 })?;
1515 } else {
1516 serialize_struct.skip_field("acquireLicensePage")?;
1517 }
1518 if !Vec::is_empty(&self.r#aggregate_rating) {
1519 serialize_struct.serialize_field("aggregateRating", {
1520 struct SerializeWith<'a>(&'a Vec<AggregateRatingProperty>);
1521 impl<'a> Serialize for SerializeWith<'a> {
1522 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1523 where
1524 S: Serializer,
1525 {
1526 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1527 self.0, serializer,
1528 )
1529 }
1530 }
1531 &SerializeWith(&self.r#aggregate_rating)
1532 })?;
1533 } else {
1534 serialize_struct.skip_field("aggregateRating")?;
1535 }
1536 if !Vec::is_empty(&self.r#alternative_headline) {
1537 serialize_struct.serialize_field("alternativeHeadline", {
1538 struct SerializeWith<'a>(&'a Vec<AlternativeHeadlineProperty>);
1539 impl<'a> Serialize for SerializeWith<'a> {
1540 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1541 where
1542 S: Serializer,
1543 {
1544 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1545 self.0, serializer,
1546 )
1547 }
1548 }
1549 &SerializeWith(&self.r#alternative_headline)
1550 })?;
1551 } else {
1552 serialize_struct.skip_field("alternativeHeadline")?;
1553 }
1554 if !Vec::is_empty(&self.r#archived_at) {
1555 serialize_struct.serialize_field("archivedAt", {
1556 struct SerializeWith<'a>(&'a Vec<ArchivedAtProperty>);
1557 impl<'a> Serialize for SerializeWith<'a> {
1558 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1559 where
1560 S: Serializer,
1561 {
1562 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1563 self.0, serializer,
1564 )
1565 }
1566 }
1567 &SerializeWith(&self.r#archived_at)
1568 })?;
1569 } else {
1570 serialize_struct.skip_field("archivedAt")?;
1571 }
1572 if !Vec::is_empty(&self.r#assesses) {
1573 serialize_struct.serialize_field("assesses", {
1574 struct SerializeWith<'a>(&'a Vec<AssessesProperty>);
1575 impl<'a> Serialize for SerializeWith<'a> {
1576 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1577 where
1578 S: Serializer,
1579 {
1580 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1581 self.0, serializer,
1582 )
1583 }
1584 }
1585 &SerializeWith(&self.r#assesses)
1586 })?;
1587 } else {
1588 serialize_struct.skip_field("assesses")?;
1589 }
1590 if !Vec::is_empty(&self.r#associated_media) {
1591 serialize_struct.serialize_field("associatedMedia", {
1592 struct SerializeWith<'a>(&'a Vec<AssociatedMediaProperty>);
1593 impl<'a> Serialize for SerializeWith<'a> {
1594 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1595 where
1596 S: Serializer,
1597 {
1598 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1599 self.0, serializer,
1600 )
1601 }
1602 }
1603 &SerializeWith(&self.r#associated_media)
1604 })?;
1605 } else {
1606 serialize_struct.skip_field("associatedMedia")?;
1607 }
1608 if !Vec::is_empty(&self.r#audience) {
1609 serialize_struct.serialize_field("audience", {
1610 struct SerializeWith<'a>(&'a Vec<AudienceProperty>);
1611 impl<'a> Serialize for SerializeWith<'a> {
1612 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1613 where
1614 S: Serializer,
1615 {
1616 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1617 self.0, serializer,
1618 )
1619 }
1620 }
1621 &SerializeWith(&self.r#audience)
1622 })?;
1623 } else {
1624 serialize_struct.skip_field("audience")?;
1625 }
1626 if !Vec::is_empty(&self.r#audio) {
1627 serialize_struct.serialize_field("audio", {
1628 struct SerializeWith<'a>(&'a Vec<AudioProperty>);
1629 impl<'a> Serialize for SerializeWith<'a> {
1630 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1631 where
1632 S: Serializer,
1633 {
1634 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1635 self.0, serializer,
1636 )
1637 }
1638 }
1639 &SerializeWith(&self.r#audio)
1640 })?;
1641 } else {
1642 serialize_struct.skip_field("audio")?;
1643 }
1644 if !Vec::is_empty(&self.r#author) {
1645 serialize_struct.serialize_field("author", {
1646 struct SerializeWith<'a>(&'a Vec<AuthorProperty>);
1647 impl<'a> Serialize for SerializeWith<'a> {
1648 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1649 where
1650 S: Serializer,
1651 {
1652 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1653 self.0, serializer,
1654 )
1655 }
1656 }
1657 &SerializeWith(&self.r#author)
1658 })?;
1659 } else {
1660 serialize_struct.skip_field("author")?;
1661 }
1662 if !Vec::is_empty(&self.r#award) {
1663 serialize_struct.serialize_field("award", {
1664 struct SerializeWith<'a>(&'a Vec<AwardProperty>);
1665 impl<'a> Serialize for SerializeWith<'a> {
1666 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1667 where
1668 S: Serializer,
1669 {
1670 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1671 self.0, serializer,
1672 )
1673 }
1674 }
1675 &SerializeWith(&self.r#award)
1676 })?;
1677 } else {
1678 serialize_struct.skip_field("award")?;
1679 }
1680 if !Vec::is_empty(&self.r#awards) {
1681 serialize_struct.serialize_field("awards", {
1682 struct SerializeWith<'a>(&'a Vec<AwardsProperty>);
1683 impl<'a> Serialize for SerializeWith<'a> {
1684 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1685 where
1686 S: Serializer,
1687 {
1688 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1689 self.0, serializer,
1690 )
1691 }
1692 }
1693 &SerializeWith(&self.r#awards)
1694 })?;
1695 } else {
1696 serialize_struct.skip_field("awards")?;
1697 }
1698 if !Vec::is_empty(&self.r#character) {
1699 serialize_struct.serialize_field("character", {
1700 struct SerializeWith<'a>(&'a Vec<CharacterProperty>);
1701 impl<'a> Serialize for SerializeWith<'a> {
1702 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1703 where
1704 S: Serializer,
1705 {
1706 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1707 self.0, serializer,
1708 )
1709 }
1710 }
1711 &SerializeWith(&self.r#character)
1712 })?;
1713 } else {
1714 serialize_struct.skip_field("character")?;
1715 }
1716 if !Vec::is_empty(&self.r#citation) {
1717 serialize_struct.serialize_field("citation", {
1718 struct SerializeWith<'a>(&'a Vec<CitationProperty>);
1719 impl<'a> Serialize for SerializeWith<'a> {
1720 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1721 where
1722 S: Serializer,
1723 {
1724 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1725 self.0, serializer,
1726 )
1727 }
1728 }
1729 &SerializeWith(&self.r#citation)
1730 })?;
1731 } else {
1732 serialize_struct.skip_field("citation")?;
1733 }
1734 if !Vec::is_empty(&self.r#comment) {
1735 serialize_struct.serialize_field("comment", {
1736 struct SerializeWith<'a>(&'a Vec<CommentProperty>);
1737 impl<'a> Serialize for SerializeWith<'a> {
1738 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1739 where
1740 S: Serializer,
1741 {
1742 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1743 self.0, serializer,
1744 )
1745 }
1746 }
1747 &SerializeWith(&self.r#comment)
1748 })?;
1749 } else {
1750 serialize_struct.skip_field("comment")?;
1751 }
1752 if !Vec::is_empty(&self.r#comment_count) {
1753 serialize_struct.serialize_field("commentCount", {
1754 struct SerializeWith<'a>(&'a Vec<CommentCountProperty>);
1755 impl<'a> Serialize for SerializeWith<'a> {
1756 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1757 where
1758 S: Serializer,
1759 {
1760 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1761 self.0, serializer,
1762 )
1763 }
1764 }
1765 &SerializeWith(&self.r#comment_count)
1766 })?;
1767 } else {
1768 serialize_struct.skip_field("commentCount")?;
1769 }
1770 if !Vec::is_empty(&self.r#conditions_of_access) {
1771 serialize_struct.serialize_field("conditionsOfAccess", {
1772 struct SerializeWith<'a>(&'a Vec<ConditionsOfAccessProperty>);
1773 impl<'a> Serialize for SerializeWith<'a> {
1774 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1775 where
1776 S: Serializer,
1777 {
1778 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1779 self.0, serializer,
1780 )
1781 }
1782 }
1783 &SerializeWith(&self.r#conditions_of_access)
1784 })?;
1785 } else {
1786 serialize_struct.skip_field("conditionsOfAccess")?;
1787 }
1788 if !Vec::is_empty(&self.r#content_location) {
1789 serialize_struct.serialize_field("contentLocation", {
1790 struct SerializeWith<'a>(&'a Vec<ContentLocationProperty>);
1791 impl<'a> Serialize for SerializeWith<'a> {
1792 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1793 where
1794 S: Serializer,
1795 {
1796 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1797 self.0, serializer,
1798 )
1799 }
1800 }
1801 &SerializeWith(&self.r#content_location)
1802 })?;
1803 } else {
1804 serialize_struct.skip_field("contentLocation")?;
1805 }
1806 if !Vec::is_empty(&self.r#content_rating) {
1807 serialize_struct.serialize_field("contentRating", {
1808 struct SerializeWith<'a>(&'a Vec<ContentRatingProperty>);
1809 impl<'a> Serialize for SerializeWith<'a> {
1810 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1811 where
1812 S: Serializer,
1813 {
1814 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1815 self.0, serializer,
1816 )
1817 }
1818 }
1819 &SerializeWith(&self.r#content_rating)
1820 })?;
1821 } else {
1822 serialize_struct.skip_field("contentRating")?;
1823 }
1824 if !Vec::is_empty(&self.r#content_reference_time) {
1825 serialize_struct.serialize_field("contentReferenceTime", {
1826 struct SerializeWith<'a>(&'a Vec<ContentReferenceTimeProperty>);
1827 impl<'a> Serialize for SerializeWith<'a> {
1828 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1829 where
1830 S: Serializer,
1831 {
1832 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1833 self.0, serializer,
1834 )
1835 }
1836 }
1837 &SerializeWith(&self.r#content_reference_time)
1838 })?;
1839 } else {
1840 serialize_struct.skip_field("contentReferenceTime")?;
1841 }
1842 if !Vec::is_empty(&self.r#contributor) {
1843 serialize_struct.serialize_field("contributor", {
1844 struct SerializeWith<'a>(&'a Vec<ContributorProperty>);
1845 impl<'a> Serialize for SerializeWith<'a> {
1846 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1847 where
1848 S: Serializer,
1849 {
1850 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1851 self.0, serializer,
1852 )
1853 }
1854 }
1855 &SerializeWith(&self.r#contributor)
1856 })?;
1857 } else {
1858 serialize_struct.skip_field("contributor")?;
1859 }
1860 if !Vec::is_empty(&self.r#copyright_holder) {
1861 serialize_struct.serialize_field("copyrightHolder", {
1862 struct SerializeWith<'a>(&'a Vec<CopyrightHolderProperty>);
1863 impl<'a> Serialize for SerializeWith<'a> {
1864 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1865 where
1866 S: Serializer,
1867 {
1868 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1869 self.0, serializer,
1870 )
1871 }
1872 }
1873 &SerializeWith(&self.r#copyright_holder)
1874 })?;
1875 } else {
1876 serialize_struct.skip_field("copyrightHolder")?;
1877 }
1878 if !Vec::is_empty(&self.r#copyright_notice) {
1879 serialize_struct.serialize_field("copyrightNotice", {
1880 struct SerializeWith<'a>(&'a Vec<CopyrightNoticeProperty>);
1881 impl<'a> Serialize for SerializeWith<'a> {
1882 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1883 where
1884 S: Serializer,
1885 {
1886 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1887 self.0, serializer,
1888 )
1889 }
1890 }
1891 &SerializeWith(&self.r#copyright_notice)
1892 })?;
1893 } else {
1894 serialize_struct.skip_field("copyrightNotice")?;
1895 }
1896 if !Vec::is_empty(&self.r#copyright_year) {
1897 serialize_struct.serialize_field("copyrightYear", {
1898 struct SerializeWith<'a>(&'a Vec<CopyrightYearProperty>);
1899 impl<'a> Serialize for SerializeWith<'a> {
1900 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1901 where
1902 S: Serializer,
1903 {
1904 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1905 self.0, serializer,
1906 )
1907 }
1908 }
1909 &SerializeWith(&self.r#copyright_year)
1910 })?;
1911 } else {
1912 serialize_struct.skip_field("copyrightYear")?;
1913 }
1914 if !Vec::is_empty(&self.r#correction) {
1915 serialize_struct.serialize_field("correction", {
1916 struct SerializeWith<'a>(&'a Vec<CorrectionProperty>);
1917 impl<'a> Serialize for SerializeWith<'a> {
1918 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1919 where
1920 S: Serializer,
1921 {
1922 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1923 self.0, serializer,
1924 )
1925 }
1926 }
1927 &SerializeWith(&self.r#correction)
1928 })?;
1929 } else {
1930 serialize_struct.skip_field("correction")?;
1931 }
1932 if !Vec::is_empty(&self.r#country_of_origin) {
1933 serialize_struct.serialize_field("countryOfOrigin", {
1934 struct SerializeWith<'a>(&'a Vec<CountryOfOriginProperty>);
1935 impl<'a> Serialize for SerializeWith<'a> {
1936 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1937 where
1938 S: Serializer,
1939 {
1940 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1941 self.0, serializer,
1942 )
1943 }
1944 }
1945 &SerializeWith(&self.r#country_of_origin)
1946 })?;
1947 } else {
1948 serialize_struct.skip_field("countryOfOrigin")?;
1949 }
1950 if !Vec::is_empty(&self.r#creative_work_status) {
1951 serialize_struct.serialize_field("creativeWorkStatus", {
1952 struct SerializeWith<'a>(&'a Vec<CreativeWorkStatusProperty>);
1953 impl<'a> Serialize for SerializeWith<'a> {
1954 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1955 where
1956 S: Serializer,
1957 {
1958 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1959 self.0, serializer,
1960 )
1961 }
1962 }
1963 &SerializeWith(&self.r#creative_work_status)
1964 })?;
1965 } else {
1966 serialize_struct.skip_field("creativeWorkStatus")?;
1967 }
1968 if !Vec::is_empty(&self.r#creator) {
1969 serialize_struct.serialize_field("creator", {
1970 struct SerializeWith<'a>(&'a Vec<CreatorProperty>);
1971 impl<'a> Serialize for SerializeWith<'a> {
1972 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1973 where
1974 S: Serializer,
1975 {
1976 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1977 self.0, serializer,
1978 )
1979 }
1980 }
1981 &SerializeWith(&self.r#creator)
1982 })?;
1983 } else {
1984 serialize_struct.skip_field("creator")?;
1985 }
1986 if !Vec::is_empty(&self.r#credit_text) {
1987 serialize_struct.serialize_field("creditText", {
1988 struct SerializeWith<'a>(&'a Vec<CreditTextProperty>);
1989 impl<'a> Serialize for SerializeWith<'a> {
1990 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1991 where
1992 S: Serializer,
1993 {
1994 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1995 self.0, serializer,
1996 )
1997 }
1998 }
1999 &SerializeWith(&self.r#credit_text)
2000 })?;
2001 } else {
2002 serialize_struct.skip_field("creditText")?;
2003 }
2004 if !Vec::is_empty(&self.r#date_created) {
2005 serialize_struct.serialize_field("dateCreated", {
2006 struct SerializeWith<'a>(&'a Vec<DateCreatedProperty>);
2007 impl<'a> Serialize for SerializeWith<'a> {
2008 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2009 where
2010 S: Serializer,
2011 {
2012 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2013 self.0, serializer,
2014 )
2015 }
2016 }
2017 &SerializeWith(&self.r#date_created)
2018 })?;
2019 } else {
2020 serialize_struct.skip_field("dateCreated")?;
2021 }
2022 if !Vec::is_empty(&self.r#date_modified) {
2023 serialize_struct.serialize_field("dateModified", {
2024 struct SerializeWith<'a>(&'a Vec<DateModifiedProperty>);
2025 impl<'a> Serialize for SerializeWith<'a> {
2026 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2027 where
2028 S: Serializer,
2029 {
2030 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2031 self.0, serializer,
2032 )
2033 }
2034 }
2035 &SerializeWith(&self.r#date_modified)
2036 })?;
2037 } else {
2038 serialize_struct.skip_field("dateModified")?;
2039 }
2040 if !Vec::is_empty(&self.r#date_published) {
2041 serialize_struct.serialize_field("datePublished", {
2042 struct SerializeWith<'a>(&'a Vec<DatePublishedProperty>);
2043 impl<'a> Serialize for SerializeWith<'a> {
2044 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2045 where
2046 S: Serializer,
2047 {
2048 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2049 self.0, serializer,
2050 )
2051 }
2052 }
2053 &SerializeWith(&self.r#date_published)
2054 })?;
2055 } else {
2056 serialize_struct.skip_field("datePublished")?;
2057 }
2058 if !Vec::is_empty(&self.r#discussion_url) {
2059 serialize_struct.serialize_field("discussionUrl", {
2060 struct SerializeWith<'a>(&'a Vec<DiscussionUrlProperty>);
2061 impl<'a> Serialize for SerializeWith<'a> {
2062 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2063 where
2064 S: Serializer,
2065 {
2066 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2067 self.0, serializer,
2068 )
2069 }
2070 }
2071 &SerializeWith(&self.r#discussion_url)
2072 })?;
2073 } else {
2074 serialize_struct.skip_field("discussionUrl")?;
2075 }
2076 if !Vec::is_empty(&self.r#edit_eidr) {
2077 serialize_struct.serialize_field("editEIDR", {
2078 struct SerializeWith<'a>(&'a Vec<EditEidrProperty>);
2079 impl<'a> Serialize for SerializeWith<'a> {
2080 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2081 where
2082 S: Serializer,
2083 {
2084 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2085 self.0, serializer,
2086 )
2087 }
2088 }
2089 &SerializeWith(&self.r#edit_eidr)
2090 })?;
2091 } else {
2092 serialize_struct.skip_field("editEIDR")?;
2093 }
2094 if !Vec::is_empty(&self.r#editor) {
2095 serialize_struct.serialize_field("editor", {
2096 struct SerializeWith<'a>(&'a Vec<EditorProperty>);
2097 impl<'a> Serialize for SerializeWith<'a> {
2098 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2099 where
2100 S: Serializer,
2101 {
2102 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2103 self.0, serializer,
2104 )
2105 }
2106 }
2107 &SerializeWith(&self.r#editor)
2108 })?;
2109 } else {
2110 serialize_struct.skip_field("editor")?;
2111 }
2112 if !Vec::is_empty(&self.r#educational_alignment) {
2113 serialize_struct.serialize_field("educationalAlignment", {
2114 struct SerializeWith<'a>(&'a Vec<EducationalAlignmentProperty>);
2115 impl<'a> Serialize for SerializeWith<'a> {
2116 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2117 where
2118 S: Serializer,
2119 {
2120 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2121 self.0, serializer,
2122 )
2123 }
2124 }
2125 &SerializeWith(&self.r#educational_alignment)
2126 })?;
2127 } else {
2128 serialize_struct.skip_field("educationalAlignment")?;
2129 }
2130 if !Vec::is_empty(&self.r#educational_level) {
2131 serialize_struct.serialize_field("educationalLevel", {
2132 struct SerializeWith<'a>(&'a Vec<EducationalLevelProperty>);
2133 impl<'a> Serialize for SerializeWith<'a> {
2134 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2135 where
2136 S: Serializer,
2137 {
2138 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2139 self.0, serializer,
2140 )
2141 }
2142 }
2143 &SerializeWith(&self.r#educational_level)
2144 })?;
2145 } else {
2146 serialize_struct.skip_field("educationalLevel")?;
2147 }
2148 if !Vec::is_empty(&self.r#educational_use) {
2149 serialize_struct.serialize_field("educationalUse", {
2150 struct SerializeWith<'a>(&'a Vec<EducationalUseProperty>);
2151 impl<'a> Serialize for SerializeWith<'a> {
2152 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2153 where
2154 S: Serializer,
2155 {
2156 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2157 self.0, serializer,
2158 )
2159 }
2160 }
2161 &SerializeWith(&self.r#educational_use)
2162 })?;
2163 } else {
2164 serialize_struct.skip_field("educationalUse")?;
2165 }
2166 if !Vec::is_empty(&self.r#encoding) {
2167 serialize_struct.serialize_field("encoding", {
2168 struct SerializeWith<'a>(&'a Vec<EncodingProperty>);
2169 impl<'a> Serialize for SerializeWith<'a> {
2170 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2171 where
2172 S: Serializer,
2173 {
2174 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2175 self.0, serializer,
2176 )
2177 }
2178 }
2179 &SerializeWith(&self.r#encoding)
2180 })?;
2181 } else {
2182 serialize_struct.skip_field("encoding")?;
2183 }
2184 if !Vec::is_empty(&self.r#encoding_format) {
2185 serialize_struct.serialize_field("encodingFormat", {
2186 struct SerializeWith<'a>(&'a Vec<EncodingFormatProperty>);
2187 impl<'a> Serialize for SerializeWith<'a> {
2188 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2189 where
2190 S: Serializer,
2191 {
2192 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2193 self.0, serializer,
2194 )
2195 }
2196 }
2197 &SerializeWith(&self.r#encoding_format)
2198 })?;
2199 } else {
2200 serialize_struct.skip_field("encodingFormat")?;
2201 }
2202 if !Vec::is_empty(&self.r#encodings) {
2203 serialize_struct.serialize_field("encodings", {
2204 struct SerializeWith<'a>(&'a Vec<EncodingsProperty>);
2205 impl<'a> Serialize for SerializeWith<'a> {
2206 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2207 where
2208 S: Serializer,
2209 {
2210 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2211 self.0, serializer,
2212 )
2213 }
2214 }
2215 &SerializeWith(&self.r#encodings)
2216 })?;
2217 } else {
2218 serialize_struct.skip_field("encodings")?;
2219 }
2220 if !Vec::is_empty(&self.r#example_of_work) {
2221 serialize_struct.serialize_field("exampleOfWork", {
2222 struct SerializeWith<'a>(&'a Vec<ExampleOfWorkProperty>);
2223 impl<'a> Serialize for SerializeWith<'a> {
2224 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2225 where
2226 S: Serializer,
2227 {
2228 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2229 self.0, serializer,
2230 )
2231 }
2232 }
2233 &SerializeWith(&self.r#example_of_work)
2234 })?;
2235 } else {
2236 serialize_struct.skip_field("exampleOfWork")?;
2237 }
2238 if !Vec::is_empty(&self.r#expires) {
2239 serialize_struct.serialize_field("expires", {
2240 struct SerializeWith<'a>(&'a Vec<ExpiresProperty>);
2241 impl<'a> Serialize for SerializeWith<'a> {
2242 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2243 where
2244 S: Serializer,
2245 {
2246 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2247 self.0, serializer,
2248 )
2249 }
2250 }
2251 &SerializeWith(&self.r#expires)
2252 })?;
2253 } else {
2254 serialize_struct.skip_field("expires")?;
2255 }
2256 if !Vec::is_empty(&self.r#file_format) {
2257 serialize_struct.serialize_field("fileFormat", {
2258 struct SerializeWith<'a>(&'a Vec<FileFormatProperty>);
2259 impl<'a> Serialize for SerializeWith<'a> {
2260 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2261 where
2262 S: Serializer,
2263 {
2264 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2265 self.0, serializer,
2266 )
2267 }
2268 }
2269 &SerializeWith(&self.r#file_format)
2270 })?;
2271 } else {
2272 serialize_struct.skip_field("fileFormat")?;
2273 }
2274 if !Vec::is_empty(&self.r#funder) {
2275 serialize_struct.serialize_field("funder", {
2276 struct SerializeWith<'a>(&'a Vec<FunderProperty>);
2277 impl<'a> Serialize for SerializeWith<'a> {
2278 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2279 where
2280 S: Serializer,
2281 {
2282 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2283 self.0, serializer,
2284 )
2285 }
2286 }
2287 &SerializeWith(&self.r#funder)
2288 })?;
2289 } else {
2290 serialize_struct.skip_field("funder")?;
2291 }
2292 if !Vec::is_empty(&self.r#funding) {
2293 serialize_struct.serialize_field("funding", {
2294 struct SerializeWith<'a>(&'a Vec<FundingProperty>);
2295 impl<'a> Serialize for SerializeWith<'a> {
2296 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2297 where
2298 S: Serializer,
2299 {
2300 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2301 self.0, serializer,
2302 )
2303 }
2304 }
2305 &SerializeWith(&self.r#funding)
2306 })?;
2307 } else {
2308 serialize_struct.skip_field("funding")?;
2309 }
2310 if !Vec::is_empty(&self.r#genre) {
2311 serialize_struct.serialize_field("genre", {
2312 struct SerializeWith<'a>(&'a Vec<GenreProperty>);
2313 impl<'a> Serialize for SerializeWith<'a> {
2314 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2315 where
2316 S: Serializer,
2317 {
2318 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2319 self.0, serializer,
2320 )
2321 }
2322 }
2323 &SerializeWith(&self.r#genre)
2324 })?;
2325 } else {
2326 serialize_struct.skip_field("genre")?;
2327 }
2328 if !Vec::is_empty(&self.r#has_part) {
2329 serialize_struct.serialize_field("hasPart", {
2330 struct SerializeWith<'a>(&'a Vec<HasPartProperty>);
2331 impl<'a> Serialize for SerializeWith<'a> {
2332 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2333 where
2334 S: Serializer,
2335 {
2336 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2337 self.0, serializer,
2338 )
2339 }
2340 }
2341 &SerializeWith(&self.r#has_part)
2342 })?;
2343 } else {
2344 serialize_struct.skip_field("hasPart")?;
2345 }
2346 if !Vec::is_empty(&self.r#headline) {
2347 serialize_struct.serialize_field("headline", {
2348 struct SerializeWith<'a>(&'a Vec<HeadlineProperty>);
2349 impl<'a> Serialize for SerializeWith<'a> {
2350 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2351 where
2352 S: Serializer,
2353 {
2354 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2355 self.0, serializer,
2356 )
2357 }
2358 }
2359 &SerializeWith(&self.r#headline)
2360 })?;
2361 } else {
2362 serialize_struct.skip_field("headline")?;
2363 }
2364 if !Vec::is_empty(&self.r#in_language) {
2365 serialize_struct.serialize_field("inLanguage", {
2366 struct SerializeWith<'a>(&'a Vec<InLanguageProperty>);
2367 impl<'a> Serialize for SerializeWith<'a> {
2368 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2369 where
2370 S: Serializer,
2371 {
2372 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2373 self.0, serializer,
2374 )
2375 }
2376 }
2377 &SerializeWith(&self.r#in_language)
2378 })?;
2379 } else {
2380 serialize_struct.skip_field("inLanguage")?;
2381 }
2382 if !Vec::is_empty(&self.r#interaction_statistic) {
2383 serialize_struct.serialize_field("interactionStatistic", {
2384 struct SerializeWith<'a>(&'a Vec<InteractionStatisticProperty>);
2385 impl<'a> Serialize for SerializeWith<'a> {
2386 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2387 where
2388 S: Serializer,
2389 {
2390 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2391 self.0, serializer,
2392 )
2393 }
2394 }
2395 &SerializeWith(&self.r#interaction_statistic)
2396 })?;
2397 } else {
2398 serialize_struct.skip_field("interactionStatistic")?;
2399 }
2400 if !Vec::is_empty(&self.r#interactivity_type) {
2401 serialize_struct.serialize_field("interactivityType", {
2402 struct SerializeWith<'a>(&'a Vec<InteractivityTypeProperty>);
2403 impl<'a> Serialize for SerializeWith<'a> {
2404 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2405 where
2406 S: Serializer,
2407 {
2408 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2409 self.0, serializer,
2410 )
2411 }
2412 }
2413 &SerializeWith(&self.r#interactivity_type)
2414 })?;
2415 } else {
2416 serialize_struct.skip_field("interactivityType")?;
2417 }
2418 if !Vec::is_empty(&self.r#interpreted_as_claim) {
2419 serialize_struct.serialize_field("interpretedAsClaim", {
2420 struct SerializeWith<'a>(&'a Vec<InterpretedAsClaimProperty>);
2421 impl<'a> Serialize for SerializeWith<'a> {
2422 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2423 where
2424 S: Serializer,
2425 {
2426 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2427 self.0, serializer,
2428 )
2429 }
2430 }
2431 &SerializeWith(&self.r#interpreted_as_claim)
2432 })?;
2433 } else {
2434 serialize_struct.skip_field("interpretedAsClaim")?;
2435 }
2436 if !Vec::is_empty(&self.r#is_accessible_for_free) {
2437 serialize_struct.serialize_field("isAccessibleForFree", {
2438 struct SerializeWith<'a>(&'a Vec<IsAccessibleForFreeProperty>);
2439 impl<'a> Serialize for SerializeWith<'a> {
2440 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2441 where
2442 S: Serializer,
2443 {
2444 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2445 self.0, serializer,
2446 )
2447 }
2448 }
2449 &SerializeWith(&self.r#is_accessible_for_free)
2450 })?;
2451 } else {
2452 serialize_struct.skip_field("isAccessibleForFree")?;
2453 }
2454 if !Vec::is_empty(&self.r#is_based_on) {
2455 serialize_struct.serialize_field("isBasedOn", {
2456 struct SerializeWith<'a>(&'a Vec<IsBasedOnProperty>);
2457 impl<'a> Serialize for SerializeWith<'a> {
2458 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2459 where
2460 S: Serializer,
2461 {
2462 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2463 self.0, serializer,
2464 )
2465 }
2466 }
2467 &SerializeWith(&self.r#is_based_on)
2468 })?;
2469 } else {
2470 serialize_struct.skip_field("isBasedOn")?;
2471 }
2472 if !Vec::is_empty(&self.r#is_based_on_url) {
2473 serialize_struct.serialize_field("isBasedOnUrl", {
2474 struct SerializeWith<'a>(&'a Vec<IsBasedOnUrlProperty>);
2475 impl<'a> Serialize for SerializeWith<'a> {
2476 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2477 where
2478 S: Serializer,
2479 {
2480 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2481 self.0, serializer,
2482 )
2483 }
2484 }
2485 &SerializeWith(&self.r#is_based_on_url)
2486 })?;
2487 } else {
2488 serialize_struct.skip_field("isBasedOnUrl")?;
2489 }
2490 if !Vec::is_empty(&self.r#is_family_friendly) {
2491 serialize_struct.serialize_field("isFamilyFriendly", {
2492 struct SerializeWith<'a>(&'a Vec<IsFamilyFriendlyProperty>);
2493 impl<'a> Serialize for SerializeWith<'a> {
2494 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2495 where
2496 S: Serializer,
2497 {
2498 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2499 self.0, serializer,
2500 )
2501 }
2502 }
2503 &SerializeWith(&self.r#is_family_friendly)
2504 })?;
2505 } else {
2506 serialize_struct.skip_field("isFamilyFriendly")?;
2507 }
2508 if !Vec::is_empty(&self.r#is_part_of) {
2509 serialize_struct.serialize_field("isPartOf", {
2510 struct SerializeWith<'a>(&'a Vec<IsPartOfProperty>);
2511 impl<'a> Serialize for SerializeWith<'a> {
2512 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2513 where
2514 S: Serializer,
2515 {
2516 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2517 self.0, serializer,
2518 )
2519 }
2520 }
2521 &SerializeWith(&self.r#is_part_of)
2522 })?;
2523 } else {
2524 serialize_struct.skip_field("isPartOf")?;
2525 }
2526 if !Vec::is_empty(&self.r#keywords) {
2527 serialize_struct.serialize_field("keywords", {
2528 struct SerializeWith<'a>(&'a Vec<KeywordsProperty>);
2529 impl<'a> Serialize for SerializeWith<'a> {
2530 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2531 where
2532 S: Serializer,
2533 {
2534 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2535 self.0, serializer,
2536 )
2537 }
2538 }
2539 &SerializeWith(&self.r#keywords)
2540 })?;
2541 } else {
2542 serialize_struct.skip_field("keywords")?;
2543 }
2544 if !Vec::is_empty(&self.r#learning_resource_type) {
2545 serialize_struct.serialize_field("learningResourceType", {
2546 struct SerializeWith<'a>(&'a Vec<LearningResourceTypeProperty>);
2547 impl<'a> Serialize for SerializeWith<'a> {
2548 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2549 where
2550 S: Serializer,
2551 {
2552 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2553 self.0, serializer,
2554 )
2555 }
2556 }
2557 &SerializeWith(&self.r#learning_resource_type)
2558 })?;
2559 } else {
2560 serialize_struct.skip_field("learningResourceType")?;
2561 }
2562 if !Vec::is_empty(&self.r#license) {
2563 serialize_struct.serialize_field("license", {
2564 struct SerializeWith<'a>(&'a Vec<LicenseProperty>);
2565 impl<'a> Serialize for SerializeWith<'a> {
2566 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2567 where
2568 S: Serializer,
2569 {
2570 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2571 self.0, serializer,
2572 )
2573 }
2574 }
2575 &SerializeWith(&self.r#license)
2576 })?;
2577 } else {
2578 serialize_struct.skip_field("license")?;
2579 }
2580 if !Vec::is_empty(&self.r#location_created) {
2581 serialize_struct.serialize_field("locationCreated", {
2582 struct SerializeWith<'a>(&'a Vec<LocationCreatedProperty>);
2583 impl<'a> Serialize for SerializeWith<'a> {
2584 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2585 where
2586 S: Serializer,
2587 {
2588 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2589 self.0, serializer,
2590 )
2591 }
2592 }
2593 &SerializeWith(&self.r#location_created)
2594 })?;
2595 } else {
2596 serialize_struct.skip_field("locationCreated")?;
2597 }
2598 if !Vec::is_empty(&self.r#main_entity) {
2599 serialize_struct.serialize_field("mainEntity", {
2600 struct SerializeWith<'a>(&'a Vec<MainEntityProperty>);
2601 impl<'a> Serialize for SerializeWith<'a> {
2602 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2603 where
2604 S: Serializer,
2605 {
2606 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2607 self.0, serializer,
2608 )
2609 }
2610 }
2611 &SerializeWith(&self.r#main_entity)
2612 })?;
2613 } else {
2614 serialize_struct.skip_field("mainEntity")?;
2615 }
2616 if !Vec::is_empty(&self.r#maintainer) {
2617 serialize_struct.serialize_field("maintainer", {
2618 struct SerializeWith<'a>(&'a Vec<MaintainerProperty>);
2619 impl<'a> Serialize for SerializeWith<'a> {
2620 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2621 where
2622 S: Serializer,
2623 {
2624 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2625 self.0, serializer,
2626 )
2627 }
2628 }
2629 &SerializeWith(&self.r#maintainer)
2630 })?;
2631 } else {
2632 serialize_struct.skip_field("maintainer")?;
2633 }
2634 if !Vec::is_empty(&self.r#material) {
2635 serialize_struct.serialize_field("material", {
2636 struct SerializeWith<'a>(&'a Vec<MaterialProperty>);
2637 impl<'a> Serialize for SerializeWith<'a> {
2638 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2639 where
2640 S: Serializer,
2641 {
2642 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2643 self.0, serializer,
2644 )
2645 }
2646 }
2647 &SerializeWith(&self.r#material)
2648 })?;
2649 } else {
2650 serialize_struct.skip_field("material")?;
2651 }
2652 if !Vec::is_empty(&self.r#material_extent) {
2653 serialize_struct.serialize_field("materialExtent", {
2654 struct SerializeWith<'a>(&'a Vec<MaterialExtentProperty>);
2655 impl<'a> Serialize for SerializeWith<'a> {
2656 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2657 where
2658 S: Serializer,
2659 {
2660 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2661 self.0, serializer,
2662 )
2663 }
2664 }
2665 &SerializeWith(&self.r#material_extent)
2666 })?;
2667 } else {
2668 serialize_struct.skip_field("materialExtent")?;
2669 }
2670 if !Vec::is_empty(&self.r#mentions) {
2671 serialize_struct.serialize_field("mentions", {
2672 struct SerializeWith<'a>(&'a Vec<MentionsProperty>);
2673 impl<'a> Serialize for SerializeWith<'a> {
2674 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2675 where
2676 S: Serializer,
2677 {
2678 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2679 self.0, serializer,
2680 )
2681 }
2682 }
2683 &SerializeWith(&self.r#mentions)
2684 })?;
2685 } else {
2686 serialize_struct.skip_field("mentions")?;
2687 }
2688 if !Vec::is_empty(&self.r#offers) {
2689 serialize_struct.serialize_field("offers", {
2690 struct SerializeWith<'a>(&'a Vec<OffersProperty>);
2691 impl<'a> Serialize for SerializeWith<'a> {
2692 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2693 where
2694 S: Serializer,
2695 {
2696 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2697 self.0, serializer,
2698 )
2699 }
2700 }
2701 &SerializeWith(&self.r#offers)
2702 })?;
2703 } else {
2704 serialize_struct.skip_field("offers")?;
2705 }
2706 if !Vec::is_empty(&self.r#pattern) {
2707 serialize_struct.serialize_field("pattern", {
2708 struct SerializeWith<'a>(&'a Vec<PatternProperty>);
2709 impl<'a> Serialize for SerializeWith<'a> {
2710 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2711 where
2712 S: Serializer,
2713 {
2714 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2715 self.0, serializer,
2716 )
2717 }
2718 }
2719 &SerializeWith(&self.r#pattern)
2720 })?;
2721 } else {
2722 serialize_struct.skip_field("pattern")?;
2723 }
2724 if !Vec::is_empty(&self.r#position) {
2725 serialize_struct.serialize_field("position", {
2726 struct SerializeWith<'a>(&'a Vec<PositionProperty>);
2727 impl<'a> Serialize for SerializeWith<'a> {
2728 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2729 where
2730 S: Serializer,
2731 {
2732 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2733 self.0, serializer,
2734 )
2735 }
2736 }
2737 &SerializeWith(&self.r#position)
2738 })?;
2739 } else {
2740 serialize_struct.skip_field("position")?;
2741 }
2742 if !Vec::is_empty(&self.r#producer) {
2743 serialize_struct.serialize_field("producer", {
2744 struct SerializeWith<'a>(&'a Vec<ProducerProperty>);
2745 impl<'a> Serialize for SerializeWith<'a> {
2746 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2747 where
2748 S: Serializer,
2749 {
2750 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2751 self.0, serializer,
2752 )
2753 }
2754 }
2755 &SerializeWith(&self.r#producer)
2756 })?;
2757 } else {
2758 serialize_struct.skip_field("producer")?;
2759 }
2760 if !Vec::is_empty(&self.r#provider) {
2761 serialize_struct.serialize_field("provider", {
2762 struct SerializeWith<'a>(&'a Vec<ProviderProperty>);
2763 impl<'a> Serialize for SerializeWith<'a> {
2764 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2765 where
2766 S: Serializer,
2767 {
2768 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2769 self.0, serializer,
2770 )
2771 }
2772 }
2773 &SerializeWith(&self.r#provider)
2774 })?;
2775 } else {
2776 serialize_struct.skip_field("provider")?;
2777 }
2778 if !Vec::is_empty(&self.r#publication) {
2779 serialize_struct.serialize_field("publication", {
2780 struct SerializeWith<'a>(&'a Vec<PublicationProperty>);
2781 impl<'a> Serialize for SerializeWith<'a> {
2782 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2783 where
2784 S: Serializer,
2785 {
2786 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2787 self.0, serializer,
2788 )
2789 }
2790 }
2791 &SerializeWith(&self.r#publication)
2792 })?;
2793 } else {
2794 serialize_struct.skip_field("publication")?;
2795 }
2796 if !Vec::is_empty(&self.r#publisher) {
2797 serialize_struct.serialize_field("publisher", {
2798 struct SerializeWith<'a>(&'a Vec<PublisherProperty>);
2799 impl<'a> Serialize for SerializeWith<'a> {
2800 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2801 where
2802 S: Serializer,
2803 {
2804 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2805 self.0, serializer,
2806 )
2807 }
2808 }
2809 &SerializeWith(&self.r#publisher)
2810 })?;
2811 } else {
2812 serialize_struct.skip_field("publisher")?;
2813 }
2814 if !Vec::is_empty(&self.r#publisher_imprint) {
2815 serialize_struct.serialize_field("publisherImprint", {
2816 struct SerializeWith<'a>(&'a Vec<PublisherImprintProperty>);
2817 impl<'a> Serialize for SerializeWith<'a> {
2818 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2819 where
2820 S: Serializer,
2821 {
2822 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2823 self.0, serializer,
2824 )
2825 }
2826 }
2827 &SerializeWith(&self.r#publisher_imprint)
2828 })?;
2829 } else {
2830 serialize_struct.skip_field("publisherImprint")?;
2831 }
2832 if !Vec::is_empty(&self.r#publishing_principles) {
2833 serialize_struct.serialize_field("publishingPrinciples", {
2834 struct SerializeWith<'a>(&'a Vec<PublishingPrinciplesProperty>);
2835 impl<'a> Serialize for SerializeWith<'a> {
2836 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2837 where
2838 S: Serializer,
2839 {
2840 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2841 self.0, serializer,
2842 )
2843 }
2844 }
2845 &SerializeWith(&self.r#publishing_principles)
2846 })?;
2847 } else {
2848 serialize_struct.skip_field("publishingPrinciples")?;
2849 }
2850 if !Vec::is_empty(&self.r#recorded_at) {
2851 serialize_struct.serialize_field("recordedAt", {
2852 struct SerializeWith<'a>(&'a Vec<RecordedAtProperty>);
2853 impl<'a> Serialize for SerializeWith<'a> {
2854 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2855 where
2856 S: Serializer,
2857 {
2858 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2859 self.0, serializer,
2860 )
2861 }
2862 }
2863 &SerializeWith(&self.r#recorded_at)
2864 })?;
2865 } else {
2866 serialize_struct.skip_field("recordedAt")?;
2867 }
2868 if !Vec::is_empty(&self.r#released_event) {
2869 serialize_struct.serialize_field("releasedEvent", {
2870 struct SerializeWith<'a>(&'a Vec<ReleasedEventProperty>);
2871 impl<'a> Serialize for SerializeWith<'a> {
2872 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2873 where
2874 S: Serializer,
2875 {
2876 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2877 self.0, serializer,
2878 )
2879 }
2880 }
2881 &SerializeWith(&self.r#released_event)
2882 })?;
2883 } else {
2884 serialize_struct.skip_field("releasedEvent")?;
2885 }
2886 if !Vec::is_empty(&self.r#review) {
2887 serialize_struct.serialize_field("review", {
2888 struct SerializeWith<'a>(&'a Vec<ReviewProperty>);
2889 impl<'a> Serialize for SerializeWith<'a> {
2890 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2891 where
2892 S: Serializer,
2893 {
2894 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2895 self.0, serializer,
2896 )
2897 }
2898 }
2899 &SerializeWith(&self.r#review)
2900 })?;
2901 } else {
2902 serialize_struct.skip_field("review")?;
2903 }
2904 if !Vec::is_empty(&self.r#reviews) {
2905 serialize_struct.serialize_field("reviews", {
2906 struct SerializeWith<'a>(&'a Vec<ReviewsProperty>);
2907 impl<'a> Serialize for SerializeWith<'a> {
2908 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2909 where
2910 S: Serializer,
2911 {
2912 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2913 self.0, serializer,
2914 )
2915 }
2916 }
2917 &SerializeWith(&self.r#reviews)
2918 })?;
2919 } else {
2920 serialize_struct.skip_field("reviews")?;
2921 }
2922 if !Vec::is_empty(&self.r#schema_version) {
2923 serialize_struct.serialize_field("schemaVersion", {
2924 struct SerializeWith<'a>(&'a Vec<SchemaVersionProperty>);
2925 impl<'a> Serialize for SerializeWith<'a> {
2926 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2927 where
2928 S: Serializer,
2929 {
2930 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2931 self.0, serializer,
2932 )
2933 }
2934 }
2935 &SerializeWith(&self.r#schema_version)
2936 })?;
2937 } else {
2938 serialize_struct.skip_field("schemaVersion")?;
2939 }
2940 if !Vec::is_empty(&self.r#sd_date_published) {
2941 serialize_struct.serialize_field("sdDatePublished", {
2942 struct SerializeWith<'a>(&'a Vec<SdDatePublishedProperty>);
2943 impl<'a> Serialize for SerializeWith<'a> {
2944 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2945 where
2946 S: Serializer,
2947 {
2948 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2949 self.0, serializer,
2950 )
2951 }
2952 }
2953 &SerializeWith(&self.r#sd_date_published)
2954 })?;
2955 } else {
2956 serialize_struct.skip_field("sdDatePublished")?;
2957 }
2958 if !Vec::is_empty(&self.r#sd_license) {
2959 serialize_struct.serialize_field("sdLicense", {
2960 struct SerializeWith<'a>(&'a Vec<SdLicenseProperty>);
2961 impl<'a> Serialize for SerializeWith<'a> {
2962 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2963 where
2964 S: Serializer,
2965 {
2966 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2967 self.0, serializer,
2968 )
2969 }
2970 }
2971 &SerializeWith(&self.r#sd_license)
2972 })?;
2973 } else {
2974 serialize_struct.skip_field("sdLicense")?;
2975 }
2976 if !Vec::is_empty(&self.r#sd_publisher) {
2977 serialize_struct.serialize_field("sdPublisher", {
2978 struct SerializeWith<'a>(&'a Vec<SdPublisherProperty>);
2979 impl<'a> Serialize for SerializeWith<'a> {
2980 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2981 where
2982 S: Serializer,
2983 {
2984 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
2985 self.0, serializer,
2986 )
2987 }
2988 }
2989 &SerializeWith(&self.r#sd_publisher)
2990 })?;
2991 } else {
2992 serialize_struct.skip_field("sdPublisher")?;
2993 }
2994 if !Vec::is_empty(&self.r#size) {
2995 serialize_struct.serialize_field("size", {
2996 struct SerializeWith<'a>(&'a Vec<SizeProperty>);
2997 impl<'a> Serialize for SerializeWith<'a> {
2998 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
2999 where
3000 S: Serializer,
3001 {
3002 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3003 self.0, serializer,
3004 )
3005 }
3006 }
3007 &SerializeWith(&self.r#size)
3008 })?;
3009 } else {
3010 serialize_struct.skip_field("size")?;
3011 }
3012 if !Vec::is_empty(&self.r#source_organization) {
3013 serialize_struct.serialize_field("sourceOrganization", {
3014 struct SerializeWith<'a>(&'a Vec<SourceOrganizationProperty>);
3015 impl<'a> Serialize for SerializeWith<'a> {
3016 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3017 where
3018 S: Serializer,
3019 {
3020 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3021 self.0, serializer,
3022 )
3023 }
3024 }
3025 &SerializeWith(&self.r#source_organization)
3026 })?;
3027 } else {
3028 serialize_struct.skip_field("sourceOrganization")?;
3029 }
3030 if !Vec::is_empty(&self.r#spatial) {
3031 serialize_struct.serialize_field("spatial", {
3032 struct SerializeWith<'a>(&'a Vec<SpatialProperty>);
3033 impl<'a> Serialize for SerializeWith<'a> {
3034 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3035 where
3036 S: Serializer,
3037 {
3038 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3039 self.0, serializer,
3040 )
3041 }
3042 }
3043 &SerializeWith(&self.r#spatial)
3044 })?;
3045 } else {
3046 serialize_struct.skip_field("spatial")?;
3047 }
3048 if !Vec::is_empty(&self.r#spatial_coverage) {
3049 serialize_struct.serialize_field("spatialCoverage", {
3050 struct SerializeWith<'a>(&'a Vec<SpatialCoverageProperty>);
3051 impl<'a> Serialize for SerializeWith<'a> {
3052 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3053 where
3054 S: Serializer,
3055 {
3056 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3057 self.0, serializer,
3058 )
3059 }
3060 }
3061 &SerializeWith(&self.r#spatial_coverage)
3062 })?;
3063 } else {
3064 serialize_struct.skip_field("spatialCoverage")?;
3065 }
3066 if !Vec::is_empty(&self.r#sponsor) {
3067 serialize_struct.serialize_field("sponsor", {
3068 struct SerializeWith<'a>(&'a Vec<SponsorProperty>);
3069 impl<'a> Serialize for SerializeWith<'a> {
3070 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3071 where
3072 S: Serializer,
3073 {
3074 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3075 self.0, serializer,
3076 )
3077 }
3078 }
3079 &SerializeWith(&self.r#sponsor)
3080 })?;
3081 } else {
3082 serialize_struct.skip_field("sponsor")?;
3083 }
3084 if !Vec::is_empty(&self.r#teaches) {
3085 serialize_struct.serialize_field("teaches", {
3086 struct SerializeWith<'a>(&'a Vec<TeachesProperty>);
3087 impl<'a> Serialize for SerializeWith<'a> {
3088 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3089 where
3090 S: Serializer,
3091 {
3092 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3093 self.0, serializer,
3094 )
3095 }
3096 }
3097 &SerializeWith(&self.r#teaches)
3098 })?;
3099 } else {
3100 serialize_struct.skip_field("teaches")?;
3101 }
3102 if !Vec::is_empty(&self.r#temporal) {
3103 serialize_struct.serialize_field("temporal", {
3104 struct SerializeWith<'a>(&'a Vec<TemporalProperty>);
3105 impl<'a> Serialize for SerializeWith<'a> {
3106 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3107 where
3108 S: Serializer,
3109 {
3110 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3111 self.0, serializer,
3112 )
3113 }
3114 }
3115 &SerializeWith(&self.r#temporal)
3116 })?;
3117 } else {
3118 serialize_struct.skip_field("temporal")?;
3119 }
3120 if !Vec::is_empty(&self.r#temporal_coverage) {
3121 serialize_struct.serialize_field("temporalCoverage", {
3122 struct SerializeWith<'a>(&'a Vec<TemporalCoverageProperty>);
3123 impl<'a> Serialize for SerializeWith<'a> {
3124 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3125 where
3126 S: Serializer,
3127 {
3128 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3129 self.0, serializer,
3130 )
3131 }
3132 }
3133 &SerializeWith(&self.r#temporal_coverage)
3134 })?;
3135 } else {
3136 serialize_struct.skip_field("temporalCoverage")?;
3137 }
3138 if !Vec::is_empty(&self.r#text) {
3139 serialize_struct.serialize_field("text", {
3140 struct SerializeWith<'a>(&'a Vec<TextProperty>);
3141 impl<'a> Serialize for SerializeWith<'a> {
3142 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3143 where
3144 S: Serializer,
3145 {
3146 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3147 self.0, serializer,
3148 )
3149 }
3150 }
3151 &SerializeWith(&self.r#text)
3152 })?;
3153 } else {
3154 serialize_struct.skip_field("text")?;
3155 }
3156 if !Vec::is_empty(&self.r#thumbnail) {
3157 serialize_struct.serialize_field("thumbnail", {
3158 struct SerializeWith<'a>(&'a Vec<ThumbnailProperty>);
3159 impl<'a> Serialize for SerializeWith<'a> {
3160 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3161 where
3162 S: Serializer,
3163 {
3164 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3165 self.0, serializer,
3166 )
3167 }
3168 }
3169 &SerializeWith(&self.r#thumbnail)
3170 })?;
3171 } else {
3172 serialize_struct.skip_field("thumbnail")?;
3173 }
3174 if !Vec::is_empty(&self.r#thumbnail_url) {
3175 serialize_struct.serialize_field("thumbnailUrl", {
3176 struct SerializeWith<'a>(&'a Vec<ThumbnailUrlProperty>);
3177 impl<'a> Serialize for SerializeWith<'a> {
3178 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3179 where
3180 S: Serializer,
3181 {
3182 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3183 self.0, serializer,
3184 )
3185 }
3186 }
3187 &SerializeWith(&self.r#thumbnail_url)
3188 })?;
3189 } else {
3190 serialize_struct.skip_field("thumbnailUrl")?;
3191 }
3192 if !Vec::is_empty(&self.r#time_required) {
3193 serialize_struct.serialize_field("timeRequired", {
3194 struct SerializeWith<'a>(&'a Vec<TimeRequiredProperty>);
3195 impl<'a> Serialize for SerializeWith<'a> {
3196 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3197 where
3198 S: Serializer,
3199 {
3200 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3201 self.0, serializer,
3202 )
3203 }
3204 }
3205 &SerializeWith(&self.r#time_required)
3206 })?;
3207 } else {
3208 serialize_struct.skip_field("timeRequired")?;
3209 }
3210 if !Vec::is_empty(&self.r#translation_of_work) {
3211 serialize_struct.serialize_field("translationOfWork", {
3212 struct SerializeWith<'a>(&'a Vec<TranslationOfWorkProperty>);
3213 impl<'a> Serialize for SerializeWith<'a> {
3214 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3215 where
3216 S: Serializer,
3217 {
3218 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3219 self.0, serializer,
3220 )
3221 }
3222 }
3223 &SerializeWith(&self.r#translation_of_work)
3224 })?;
3225 } else {
3226 serialize_struct.skip_field("translationOfWork")?;
3227 }
3228 if !Vec::is_empty(&self.r#translator) {
3229 serialize_struct.serialize_field("translator", {
3230 struct SerializeWith<'a>(&'a Vec<TranslatorProperty>);
3231 impl<'a> Serialize for SerializeWith<'a> {
3232 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3233 where
3234 S: Serializer,
3235 {
3236 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3237 self.0, serializer,
3238 )
3239 }
3240 }
3241 &SerializeWith(&self.r#translator)
3242 })?;
3243 } else {
3244 serialize_struct.skip_field("translator")?;
3245 }
3246 if !Vec::is_empty(&self.r#typical_age_range) {
3247 serialize_struct.serialize_field("typicalAgeRange", {
3248 struct SerializeWith<'a>(&'a Vec<TypicalAgeRangeProperty>);
3249 impl<'a> Serialize for SerializeWith<'a> {
3250 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3251 where
3252 S: Serializer,
3253 {
3254 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3255 self.0, serializer,
3256 )
3257 }
3258 }
3259 &SerializeWith(&self.r#typical_age_range)
3260 })?;
3261 } else {
3262 serialize_struct.skip_field("typicalAgeRange")?;
3263 }
3264 if !Vec::is_empty(&self.r#usage_info) {
3265 serialize_struct.serialize_field("usageInfo", {
3266 struct SerializeWith<'a>(&'a Vec<UsageInfoProperty>);
3267 impl<'a> Serialize for SerializeWith<'a> {
3268 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3269 where
3270 S: Serializer,
3271 {
3272 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3273 self.0, serializer,
3274 )
3275 }
3276 }
3277 &SerializeWith(&self.r#usage_info)
3278 })?;
3279 } else {
3280 serialize_struct.skip_field("usageInfo")?;
3281 }
3282 if !Vec::is_empty(&self.r#version) {
3283 serialize_struct.serialize_field("version", {
3284 struct SerializeWith<'a>(&'a Vec<VersionProperty>);
3285 impl<'a> Serialize for SerializeWith<'a> {
3286 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3287 where
3288 S: Serializer,
3289 {
3290 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3291 self.0, serializer,
3292 )
3293 }
3294 }
3295 &SerializeWith(&self.r#version)
3296 })?;
3297 } else {
3298 serialize_struct.skip_field("version")?;
3299 }
3300 if !Vec::is_empty(&self.r#video) {
3301 serialize_struct.serialize_field("video", {
3302 struct SerializeWith<'a>(&'a Vec<VideoProperty>);
3303 impl<'a> Serialize for SerializeWith<'a> {
3304 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3305 where
3306 S: Serializer,
3307 {
3308 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3309 self.0, serializer,
3310 )
3311 }
3312 }
3313 &SerializeWith(&self.r#video)
3314 })?;
3315 } else {
3316 serialize_struct.skip_field("video")?;
3317 }
3318 if !Vec::is_empty(&self.r#work_example) {
3319 serialize_struct.serialize_field("workExample", {
3320 struct SerializeWith<'a>(&'a Vec<WorkExampleProperty>);
3321 impl<'a> Serialize for SerializeWith<'a> {
3322 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3323 where
3324 S: Serializer,
3325 {
3326 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3327 self.0, serializer,
3328 )
3329 }
3330 }
3331 &SerializeWith(&self.r#work_example)
3332 })?;
3333 } else {
3334 serialize_struct.skip_field("workExample")?;
3335 }
3336 if !Vec::is_empty(&self.r#work_translation) {
3337 serialize_struct.serialize_field("workTranslation", {
3338 struct SerializeWith<'a>(&'a Vec<WorkTranslationProperty>);
3339 impl<'a> Serialize for SerializeWith<'a> {
3340 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3341 where
3342 S: Serializer,
3343 {
3344 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3345 self.0, serializer,
3346 )
3347 }
3348 }
3349 &SerializeWith(&self.r#work_translation)
3350 })?;
3351 } else {
3352 serialize_struct.skip_field("workTranslation")?;
3353 }
3354 if !Vec::is_empty(&self.r#additional_type) {
3355 serialize_struct.serialize_field("additionalType", {
3356 struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
3357 impl<'a> Serialize for SerializeWith<'a> {
3358 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3359 where
3360 S: Serializer,
3361 {
3362 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3363 self.0, serializer,
3364 )
3365 }
3366 }
3367 &SerializeWith(&self.r#additional_type)
3368 })?;
3369 } else {
3370 serialize_struct.skip_field("additionalType")?;
3371 }
3372 if !Vec::is_empty(&self.r#alternate_name) {
3373 serialize_struct.serialize_field("alternateName", {
3374 struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
3375 impl<'a> Serialize for SerializeWith<'a> {
3376 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3377 where
3378 S: Serializer,
3379 {
3380 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3381 self.0, serializer,
3382 )
3383 }
3384 }
3385 &SerializeWith(&self.r#alternate_name)
3386 })?;
3387 } else {
3388 serialize_struct.skip_field("alternateName")?;
3389 }
3390 if !Vec::is_empty(&self.r#description) {
3391 serialize_struct.serialize_field("description", {
3392 struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
3393 impl<'a> Serialize for SerializeWith<'a> {
3394 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3395 where
3396 S: Serializer,
3397 {
3398 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3399 self.0, serializer,
3400 )
3401 }
3402 }
3403 &SerializeWith(&self.r#description)
3404 })?;
3405 } else {
3406 serialize_struct.skip_field("description")?;
3407 }
3408 if !Vec::is_empty(&self.r#disambiguating_description) {
3409 serialize_struct.serialize_field("disambiguatingDescription", {
3410 struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
3411 impl<'a> Serialize for SerializeWith<'a> {
3412 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3413 where
3414 S: Serializer,
3415 {
3416 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3417 self.0, serializer,
3418 )
3419 }
3420 }
3421 &SerializeWith(&self.r#disambiguating_description)
3422 })?;
3423 } else {
3424 serialize_struct.skip_field("disambiguatingDescription")?;
3425 }
3426 if !Vec::is_empty(&self.r#identifier) {
3427 serialize_struct.serialize_field("identifier", {
3428 struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
3429 impl<'a> Serialize for SerializeWith<'a> {
3430 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3431 where
3432 S: Serializer,
3433 {
3434 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3435 self.0, serializer,
3436 )
3437 }
3438 }
3439 &SerializeWith(&self.r#identifier)
3440 })?;
3441 } else {
3442 serialize_struct.skip_field("identifier")?;
3443 }
3444 if !Vec::is_empty(&self.r#image) {
3445 serialize_struct.serialize_field("image", {
3446 struct SerializeWith<'a>(&'a Vec<ImageProperty>);
3447 impl<'a> Serialize for SerializeWith<'a> {
3448 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3449 where
3450 S: Serializer,
3451 {
3452 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3453 self.0, serializer,
3454 )
3455 }
3456 }
3457 &SerializeWith(&self.r#image)
3458 })?;
3459 } else {
3460 serialize_struct.skip_field("image")?;
3461 }
3462 if !Vec::is_empty(&self.r#main_entity_of_page) {
3463 serialize_struct.serialize_field("mainEntityOfPage", {
3464 struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
3465 impl<'a> Serialize for SerializeWith<'a> {
3466 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3467 where
3468 S: Serializer,
3469 {
3470 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3471 self.0, serializer,
3472 )
3473 }
3474 }
3475 &SerializeWith(&self.r#main_entity_of_page)
3476 })?;
3477 } else {
3478 serialize_struct.skip_field("mainEntityOfPage")?;
3479 }
3480 if !Vec::is_empty(&self.r#name) {
3481 serialize_struct.serialize_field("name", {
3482 struct SerializeWith<'a>(&'a Vec<NameProperty>);
3483 impl<'a> Serialize for SerializeWith<'a> {
3484 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3485 where
3486 S: Serializer,
3487 {
3488 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3489 self.0, serializer,
3490 )
3491 }
3492 }
3493 &SerializeWith(&self.r#name)
3494 })?;
3495 } else {
3496 serialize_struct.skip_field("name")?;
3497 }
3498 if !Vec::is_empty(&self.r#potential_action) {
3499 serialize_struct.serialize_field("potentialAction", {
3500 struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
3501 impl<'a> Serialize for SerializeWith<'a> {
3502 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3503 where
3504 S: Serializer,
3505 {
3506 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3507 self.0, serializer,
3508 )
3509 }
3510 }
3511 &SerializeWith(&self.r#potential_action)
3512 })?;
3513 } else {
3514 serialize_struct.skip_field("potentialAction")?;
3515 }
3516 if !Vec::is_empty(&self.r#same_as) {
3517 serialize_struct.serialize_field("sameAs", {
3518 struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
3519 impl<'a> Serialize for SerializeWith<'a> {
3520 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3521 where
3522 S: Serializer,
3523 {
3524 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3525 self.0, serializer,
3526 )
3527 }
3528 }
3529 &SerializeWith(&self.r#same_as)
3530 })?;
3531 } else {
3532 serialize_struct.skip_field("sameAs")?;
3533 }
3534 if !Vec::is_empty(&self.r#subject_of) {
3535 serialize_struct.serialize_field("subjectOf", {
3536 struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
3537 impl<'a> Serialize for SerializeWith<'a> {
3538 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3539 where
3540 S: Serializer,
3541 {
3542 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3543 self.0, serializer,
3544 )
3545 }
3546 }
3547 &SerializeWith(&self.r#subject_of)
3548 })?;
3549 } else {
3550 serialize_struct.skip_field("subjectOf")?;
3551 }
3552 if !Vec::is_empty(&self.r#url) {
3553 serialize_struct.serialize_field("url", {
3554 struct SerializeWith<'a>(&'a Vec<UrlProperty>);
3555 impl<'a> Serialize for SerializeWith<'a> {
3556 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3557 where
3558 S: Serializer,
3559 {
3560 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3561 self.0, serializer,
3562 )
3563 }
3564 }
3565 &SerializeWith(&self.r#url)
3566 })?;
3567 } else {
3568 serialize_struct.skip_field("url")?;
3569 }
3570 serialize_struct.end()
3571 }
3572 }
3573 impl<'de> Deserialize<'de> for Game {
3574 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3575 where
3576 D: Deserializer<'de>,
3577 {
3578 enum Field {
3579 CharacterAttribute,
3580 GameItem,
3581 GameLocation,
3582 NumberOfPlayers,
3583 Quest,
3584 About,
3585 Abstract,
3586 AccessMode,
3587 AccessModeSufficient,
3588 AccessibilityApi,
3589 AccessibilityControl,
3590 AccessibilityFeature,
3591 AccessibilityHazard,
3592 AccessibilitySummary,
3593 AccountablePerson,
3594 AcquireLicensePage,
3595 AggregateRating,
3596 AlternativeHeadline,
3597 ArchivedAt,
3598 Assesses,
3599 AssociatedMedia,
3600 Audience,
3601 Audio,
3602 Author,
3603 Award,
3604 Awards,
3605 Character,
3606 Citation,
3607 Comment,
3608 CommentCount,
3609 ConditionsOfAccess,
3610 ContentLocation,
3611 ContentRating,
3612 ContentReferenceTime,
3613 Contributor,
3614 CopyrightHolder,
3615 CopyrightNotice,
3616 CopyrightYear,
3617 Correction,
3618 CountryOfOrigin,
3619 CreativeWorkStatus,
3620 Creator,
3621 CreditText,
3622 DateCreated,
3623 DateModified,
3624 DatePublished,
3625 DiscussionUrl,
3626 EditEidr,
3627 Editor,
3628 EducationalAlignment,
3629 EducationalLevel,
3630 EducationalUse,
3631 Encoding,
3632 EncodingFormat,
3633 Encodings,
3634 ExampleOfWork,
3635 Expires,
3636 FileFormat,
3637 Funder,
3638 Funding,
3639 Genre,
3640 HasPart,
3641 Headline,
3642 InLanguage,
3643 InteractionStatistic,
3644 InteractivityType,
3645 InterpretedAsClaim,
3646 IsAccessibleForFree,
3647 IsBasedOn,
3648 IsBasedOnUrl,
3649 IsFamilyFriendly,
3650 IsPartOf,
3651 Keywords,
3652 LearningResourceType,
3653 License,
3654 LocationCreated,
3655 MainEntity,
3656 Maintainer,
3657 Material,
3658 MaterialExtent,
3659 Mentions,
3660 Offers,
3661 Pattern,
3662 Position,
3663 Producer,
3664 Provider,
3665 Publication,
3666 Publisher,
3667 PublisherImprint,
3668 PublishingPrinciples,
3669 RecordedAt,
3670 ReleasedEvent,
3671 Review,
3672 Reviews,
3673 SchemaVersion,
3674 SdDatePublished,
3675 SdLicense,
3676 SdPublisher,
3677 Size,
3678 SourceOrganization,
3679 Spatial,
3680 SpatialCoverage,
3681 Sponsor,
3682 Teaches,
3683 Temporal,
3684 TemporalCoverage,
3685 Text,
3686 Thumbnail,
3687 ThumbnailUrl,
3688 TimeRequired,
3689 TranslationOfWork,
3690 Translator,
3691 TypicalAgeRange,
3692 UsageInfo,
3693 Version,
3694 Video,
3695 WorkExample,
3696 WorkTranslation,
3697 AdditionalType,
3698 AlternateName,
3699 Description,
3700 DisambiguatingDescription,
3701 Identifier,
3702 Image,
3703 MainEntityOfPage,
3704 Name,
3705 PotentialAction,
3706 SameAs,
3707 SubjectOf,
3708 Url,
3709 Ignore,
3710 }
3711 struct FieldVisitor;
3712 impl<'de> Visitor<'de> for FieldVisitor {
3713 type Value = Field;
3714 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
3715 formatter.write_str("field identifier")
3716 }
3717 fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
3718 where
3719 E: de::Error,
3720 {
3721 match value {
3722 "characterAttribute" => Ok(Field::CharacterAttribute),
3723 "gameItem" => Ok(Field::GameItem),
3724 "gameLocation" => Ok(Field::GameLocation),
3725 "numberOfPlayers" => Ok(Field::NumberOfPlayers),
3726 "quest" => Ok(Field::Quest),
3727 "about" => Ok(Field::About),
3728 "abstract" => Ok(Field::Abstract),
3729 "accessMode" => Ok(Field::AccessMode),
3730 "accessModeSufficient" => Ok(Field::AccessModeSufficient),
3731 "accessibilityAPI" => Ok(Field::AccessibilityApi),
3732 "accessibilityControl" => Ok(Field::AccessibilityControl),
3733 "accessibilityFeature" => Ok(Field::AccessibilityFeature),
3734 "accessibilityHazard" => Ok(Field::AccessibilityHazard),
3735 "accessibilitySummary" => Ok(Field::AccessibilitySummary),
3736 "accountablePerson" => Ok(Field::AccountablePerson),
3737 "acquireLicensePage" => Ok(Field::AcquireLicensePage),
3738 "aggregateRating" => Ok(Field::AggregateRating),
3739 "alternativeHeadline" => Ok(Field::AlternativeHeadline),
3740 "archivedAt" => Ok(Field::ArchivedAt),
3741 "assesses" => Ok(Field::Assesses),
3742 "associatedMedia" => Ok(Field::AssociatedMedia),
3743 "audience" => Ok(Field::Audience),
3744 "audio" => Ok(Field::Audio),
3745 "author" => Ok(Field::Author),
3746 "award" => Ok(Field::Award),
3747 "awards" => Ok(Field::Awards),
3748 "character" => Ok(Field::Character),
3749 "citation" => Ok(Field::Citation),
3750 "comment" => Ok(Field::Comment),
3751 "commentCount" => Ok(Field::CommentCount),
3752 "conditionsOfAccess" => Ok(Field::ConditionsOfAccess),
3753 "contentLocation" => Ok(Field::ContentLocation),
3754 "contentRating" => Ok(Field::ContentRating),
3755 "contentReferenceTime" => Ok(Field::ContentReferenceTime),
3756 "contributor" => Ok(Field::Contributor),
3757 "copyrightHolder" => Ok(Field::CopyrightHolder),
3758 "copyrightNotice" => Ok(Field::CopyrightNotice),
3759 "copyrightYear" => Ok(Field::CopyrightYear),
3760 "correction" => Ok(Field::Correction),
3761 "countryOfOrigin" => Ok(Field::CountryOfOrigin),
3762 "creativeWorkStatus" => Ok(Field::CreativeWorkStatus),
3763 "creator" => Ok(Field::Creator),
3764 "creditText" => Ok(Field::CreditText),
3765 "dateCreated" => Ok(Field::DateCreated),
3766 "dateModified" => Ok(Field::DateModified),
3767 "datePublished" => Ok(Field::DatePublished),
3768 "discussionUrl" => Ok(Field::DiscussionUrl),
3769 "editEIDR" => Ok(Field::EditEidr),
3770 "editor" => Ok(Field::Editor),
3771 "educationalAlignment" => Ok(Field::EducationalAlignment),
3772 "educationalLevel" => Ok(Field::EducationalLevel),
3773 "educationalUse" => Ok(Field::EducationalUse),
3774 "encoding" => Ok(Field::Encoding),
3775 "encodingFormat" => Ok(Field::EncodingFormat),
3776 "encodings" => Ok(Field::Encodings),
3777 "exampleOfWork" => Ok(Field::ExampleOfWork),
3778 "expires" => Ok(Field::Expires),
3779 "fileFormat" => Ok(Field::FileFormat),
3780 "funder" => Ok(Field::Funder),
3781 "funding" => Ok(Field::Funding),
3782 "genre" => Ok(Field::Genre),
3783 "hasPart" => Ok(Field::HasPart),
3784 "headline" => Ok(Field::Headline),
3785 "inLanguage" => Ok(Field::InLanguage),
3786 "interactionStatistic" => Ok(Field::InteractionStatistic),
3787 "interactivityType" => Ok(Field::InteractivityType),
3788 "interpretedAsClaim" => Ok(Field::InterpretedAsClaim),
3789 "isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
3790 "isBasedOn" => Ok(Field::IsBasedOn),
3791 "isBasedOnUrl" => Ok(Field::IsBasedOnUrl),
3792 "isFamilyFriendly" => Ok(Field::IsFamilyFriendly),
3793 "isPartOf" => Ok(Field::IsPartOf),
3794 "keywords" => Ok(Field::Keywords),
3795 "learningResourceType" => Ok(Field::LearningResourceType),
3796 "license" => Ok(Field::License),
3797 "locationCreated" => Ok(Field::LocationCreated),
3798 "mainEntity" => Ok(Field::MainEntity),
3799 "maintainer" => Ok(Field::Maintainer),
3800 "material" => Ok(Field::Material),
3801 "materialExtent" => Ok(Field::MaterialExtent),
3802 "mentions" => Ok(Field::Mentions),
3803 "offers" => Ok(Field::Offers),
3804 "pattern" => Ok(Field::Pattern),
3805 "position" => Ok(Field::Position),
3806 "producer" => Ok(Field::Producer),
3807 "provider" => Ok(Field::Provider),
3808 "publication" => Ok(Field::Publication),
3809 "publisher" => Ok(Field::Publisher),
3810 "publisherImprint" => Ok(Field::PublisherImprint),
3811 "publishingPrinciples" => Ok(Field::PublishingPrinciples),
3812 "recordedAt" => Ok(Field::RecordedAt),
3813 "releasedEvent" => Ok(Field::ReleasedEvent),
3814 "review" => Ok(Field::Review),
3815 "reviews" => Ok(Field::Reviews),
3816 "schemaVersion" => Ok(Field::SchemaVersion),
3817 "sdDatePublished" => Ok(Field::SdDatePublished),
3818 "sdLicense" => Ok(Field::SdLicense),
3819 "sdPublisher" => Ok(Field::SdPublisher),
3820 "size" => Ok(Field::Size),
3821 "sourceOrganization" => Ok(Field::SourceOrganization),
3822 "spatial" => Ok(Field::Spatial),
3823 "spatialCoverage" => Ok(Field::SpatialCoverage),
3824 "sponsor" => Ok(Field::Sponsor),
3825 "teaches" => Ok(Field::Teaches),
3826 "temporal" => Ok(Field::Temporal),
3827 "temporalCoverage" => Ok(Field::TemporalCoverage),
3828 "text" => Ok(Field::Text),
3829 "thumbnail" => Ok(Field::Thumbnail),
3830 "thumbnailUrl" => Ok(Field::ThumbnailUrl),
3831 "timeRequired" => Ok(Field::TimeRequired),
3832 "translationOfWork" => Ok(Field::TranslationOfWork),
3833 "translator" => Ok(Field::Translator),
3834 "typicalAgeRange" => Ok(Field::TypicalAgeRange),
3835 "usageInfo" => Ok(Field::UsageInfo),
3836 "version" => Ok(Field::Version),
3837 "video" => Ok(Field::Video),
3838 "workExample" => Ok(Field::WorkExample),
3839 "workTranslation" => Ok(Field::WorkTranslation),
3840 "additionalType" => Ok(Field::AdditionalType),
3841 "alternateName" => Ok(Field::AlternateName),
3842 "description" => Ok(Field::Description),
3843 "disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
3844 "identifier" => Ok(Field::Identifier),
3845 "image" => Ok(Field::Image),
3846 "mainEntityOfPage" => Ok(Field::MainEntityOfPage),
3847 "name" => Ok(Field::Name),
3848 "potentialAction" => Ok(Field::PotentialAction),
3849 "sameAs" => Ok(Field::SameAs),
3850 "subjectOf" => Ok(Field::SubjectOf),
3851 "url" => Ok(Field::Url),
3852 "id" | "type" => Ok(Field::Ignore),
3853 _ => Err(de::Error::unknown_field(value, FIELDS)),
3854 }
3855 }
3856 fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
3857 where
3858 E: de::Error,
3859 {
3860 match value {
3861 b"characterAttribute" => Ok(Field::CharacterAttribute),
3862 b"gameItem" => Ok(Field::GameItem),
3863 b"gameLocation" => Ok(Field::GameLocation),
3864 b"numberOfPlayers" => Ok(Field::NumberOfPlayers),
3865 b"quest" => Ok(Field::Quest),
3866 b"about" => Ok(Field::About),
3867 b"abstract" => Ok(Field::Abstract),
3868 b"accessMode" => Ok(Field::AccessMode),
3869 b"accessModeSufficient" => Ok(Field::AccessModeSufficient),
3870 b"accessibilityAPI" => Ok(Field::AccessibilityApi),
3871 b"accessibilityControl" => Ok(Field::AccessibilityControl),
3872 b"accessibilityFeature" => Ok(Field::AccessibilityFeature),
3873 b"accessibilityHazard" => Ok(Field::AccessibilityHazard),
3874 b"accessibilitySummary" => Ok(Field::AccessibilitySummary),
3875 b"accountablePerson" => Ok(Field::AccountablePerson),
3876 b"acquireLicensePage" => Ok(Field::AcquireLicensePage),
3877 b"aggregateRating" => Ok(Field::AggregateRating),
3878 b"alternativeHeadline" => Ok(Field::AlternativeHeadline),
3879 b"archivedAt" => Ok(Field::ArchivedAt),
3880 b"assesses" => Ok(Field::Assesses),
3881 b"associatedMedia" => Ok(Field::AssociatedMedia),
3882 b"audience" => Ok(Field::Audience),
3883 b"audio" => Ok(Field::Audio),
3884 b"author" => Ok(Field::Author),
3885 b"award" => Ok(Field::Award),
3886 b"awards" => Ok(Field::Awards),
3887 b"character" => Ok(Field::Character),
3888 b"citation" => Ok(Field::Citation),
3889 b"comment" => Ok(Field::Comment),
3890 b"commentCount" => Ok(Field::CommentCount),
3891 b"conditionsOfAccess" => Ok(Field::ConditionsOfAccess),
3892 b"contentLocation" => Ok(Field::ContentLocation),
3893 b"contentRating" => Ok(Field::ContentRating),
3894 b"contentReferenceTime" => Ok(Field::ContentReferenceTime),
3895 b"contributor" => Ok(Field::Contributor),
3896 b"copyrightHolder" => Ok(Field::CopyrightHolder),
3897 b"copyrightNotice" => Ok(Field::CopyrightNotice),
3898 b"copyrightYear" => Ok(Field::CopyrightYear),
3899 b"correction" => Ok(Field::Correction),
3900 b"countryOfOrigin" => Ok(Field::CountryOfOrigin),
3901 b"creativeWorkStatus" => Ok(Field::CreativeWorkStatus),
3902 b"creator" => Ok(Field::Creator),
3903 b"creditText" => Ok(Field::CreditText),
3904 b"dateCreated" => Ok(Field::DateCreated),
3905 b"dateModified" => Ok(Field::DateModified),
3906 b"datePublished" => Ok(Field::DatePublished),
3907 b"discussionUrl" => Ok(Field::DiscussionUrl),
3908 b"editEIDR" => Ok(Field::EditEidr),
3909 b"editor" => Ok(Field::Editor),
3910 b"educationalAlignment" => Ok(Field::EducationalAlignment),
3911 b"educationalLevel" => Ok(Field::EducationalLevel),
3912 b"educationalUse" => Ok(Field::EducationalUse),
3913 b"encoding" => Ok(Field::Encoding),
3914 b"encodingFormat" => Ok(Field::EncodingFormat),
3915 b"encodings" => Ok(Field::Encodings),
3916 b"exampleOfWork" => Ok(Field::ExampleOfWork),
3917 b"expires" => Ok(Field::Expires),
3918 b"fileFormat" => Ok(Field::FileFormat),
3919 b"funder" => Ok(Field::Funder),
3920 b"funding" => Ok(Field::Funding),
3921 b"genre" => Ok(Field::Genre),
3922 b"hasPart" => Ok(Field::HasPart),
3923 b"headline" => Ok(Field::Headline),
3924 b"inLanguage" => Ok(Field::InLanguage),
3925 b"interactionStatistic" => Ok(Field::InteractionStatistic),
3926 b"interactivityType" => Ok(Field::InteractivityType),
3927 b"interpretedAsClaim" => Ok(Field::InterpretedAsClaim),
3928 b"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
3929 b"isBasedOn" => Ok(Field::IsBasedOn),
3930 b"isBasedOnUrl" => Ok(Field::IsBasedOnUrl),
3931 b"isFamilyFriendly" => Ok(Field::IsFamilyFriendly),
3932 b"isPartOf" => Ok(Field::IsPartOf),
3933 b"keywords" => Ok(Field::Keywords),
3934 b"learningResourceType" => Ok(Field::LearningResourceType),
3935 b"license" => Ok(Field::License),
3936 b"locationCreated" => Ok(Field::LocationCreated),
3937 b"mainEntity" => Ok(Field::MainEntity),
3938 b"maintainer" => Ok(Field::Maintainer),
3939 b"material" => Ok(Field::Material),
3940 b"materialExtent" => Ok(Field::MaterialExtent),
3941 b"mentions" => Ok(Field::Mentions),
3942 b"offers" => Ok(Field::Offers),
3943 b"pattern" => Ok(Field::Pattern),
3944 b"position" => Ok(Field::Position),
3945 b"producer" => Ok(Field::Producer),
3946 b"provider" => Ok(Field::Provider),
3947 b"publication" => Ok(Field::Publication),
3948 b"publisher" => Ok(Field::Publisher),
3949 b"publisherImprint" => Ok(Field::PublisherImprint),
3950 b"publishingPrinciples" => Ok(Field::PublishingPrinciples),
3951 b"recordedAt" => Ok(Field::RecordedAt),
3952 b"releasedEvent" => Ok(Field::ReleasedEvent),
3953 b"review" => Ok(Field::Review),
3954 b"reviews" => Ok(Field::Reviews),
3955 b"schemaVersion" => Ok(Field::SchemaVersion),
3956 b"sdDatePublished" => Ok(Field::SdDatePublished),
3957 b"sdLicense" => Ok(Field::SdLicense),
3958 b"sdPublisher" => Ok(Field::SdPublisher),
3959 b"size" => Ok(Field::Size),
3960 b"sourceOrganization" => Ok(Field::SourceOrganization),
3961 b"spatial" => Ok(Field::Spatial),
3962 b"spatialCoverage" => Ok(Field::SpatialCoverage),
3963 b"sponsor" => Ok(Field::Sponsor),
3964 b"teaches" => Ok(Field::Teaches),
3965 b"temporal" => Ok(Field::Temporal),
3966 b"temporalCoverage" => Ok(Field::TemporalCoverage),
3967 b"text" => Ok(Field::Text),
3968 b"thumbnail" => Ok(Field::Thumbnail),
3969 b"thumbnailUrl" => Ok(Field::ThumbnailUrl),
3970 b"timeRequired" => Ok(Field::TimeRequired),
3971 b"translationOfWork" => Ok(Field::TranslationOfWork),
3972 b"translator" => Ok(Field::Translator),
3973 b"typicalAgeRange" => Ok(Field::TypicalAgeRange),
3974 b"usageInfo" => Ok(Field::UsageInfo),
3975 b"version" => Ok(Field::Version),
3976 b"video" => Ok(Field::Video),
3977 b"workExample" => Ok(Field::WorkExample),
3978 b"workTranslation" => Ok(Field::WorkTranslation),
3979 b"additionalType" => Ok(Field::AdditionalType),
3980 b"alternateName" => Ok(Field::AlternateName),
3981 b"description" => Ok(Field::Description),
3982 b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
3983 b"identifier" => Ok(Field::Identifier),
3984 b"image" => Ok(Field::Image),
3985 b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
3986 b"name" => Ok(Field::Name),
3987 b"potentialAction" => Ok(Field::PotentialAction),
3988 b"sameAs" => Ok(Field::SameAs),
3989 b"subjectOf" => Ok(Field::SubjectOf),
3990 b"url" => Ok(Field::Url),
3991 b"id" | b"type" => Ok(Field::Ignore),
3992 _ => {
3993 let value = &String::from_utf8_lossy(value);
3994 Err(de::Error::unknown_field(value, FIELDS))
3995 }
3996 }
3997 }
3998 }
3999 impl<'de> Deserialize<'de> for Field {
4000 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4001 where
4002 D: Deserializer<'de>,
4003 {
4004 deserializer.deserialize_identifier(FieldVisitor)
4005 }
4006 }
4007 struct ClassVisitor;
4008 impl<'de> Visitor<'de> for ClassVisitor {
4009 type Value = Game;
4010 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
4011 formatter.write_str("schema.org schema Game")
4012 }
4013 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
4014 where
4015 A: de::MapAccess<'de>,
4016 {
4017 let mut r#character_attribute_property = None;
4018 let mut r#game_item_property = None;
4019 let mut r#game_location_property = None;
4020 let mut r#number_of_players_property = None;
4021 let mut r#quest_property = None;
4022 let mut r#about_property = None;
4023 let mut r#abstract_property = None;
4024 let mut r#access_mode_property = None;
4025 let mut r#access_mode_sufficient_property = None;
4026 let mut r#accessibility_api_property = None;
4027 let mut r#accessibility_control_property = None;
4028 let mut r#accessibility_feature_property = None;
4029 let mut r#accessibility_hazard_property = None;
4030 let mut r#accessibility_summary_property = None;
4031 let mut r#accountable_person_property = None;
4032 let mut r#acquire_license_page_property = None;
4033 let mut r#aggregate_rating_property = None;
4034 let mut r#alternative_headline_property = None;
4035 let mut r#archived_at_property = None;
4036 let mut r#assesses_property = None;
4037 let mut r#associated_media_property = None;
4038 let mut r#audience_property = None;
4039 let mut r#audio_property = None;
4040 let mut r#author_property = None;
4041 let mut r#award_property = None;
4042 let mut r#awards_property = None;
4043 let mut r#character_property = None;
4044 let mut r#citation_property = None;
4045 let mut r#comment_property = None;
4046 let mut r#comment_count_property = None;
4047 let mut r#conditions_of_access_property = None;
4048 let mut r#content_location_property = None;
4049 let mut r#content_rating_property = None;
4050 let mut r#content_reference_time_property = None;
4051 let mut r#contributor_property = None;
4052 let mut r#copyright_holder_property = None;
4053 let mut r#copyright_notice_property = None;
4054 let mut r#copyright_year_property = None;
4055 let mut r#correction_property = None;
4056 let mut r#country_of_origin_property = None;
4057 let mut r#creative_work_status_property = None;
4058 let mut r#creator_property = None;
4059 let mut r#credit_text_property = None;
4060 let mut r#date_created_property = None;
4061 let mut r#date_modified_property = None;
4062 let mut r#date_published_property = None;
4063 let mut r#discussion_url_property = None;
4064 let mut r#edit_eidr_property = None;
4065 let mut r#editor_property = None;
4066 let mut r#educational_alignment_property = None;
4067 let mut r#educational_level_property = None;
4068 let mut r#educational_use_property = None;
4069 let mut r#encoding_property = None;
4070 let mut r#encoding_format_property = None;
4071 let mut r#encodings_property = None;
4072 let mut r#example_of_work_property = None;
4073 let mut r#expires_property = None;
4074 let mut r#file_format_property = None;
4075 let mut r#funder_property = None;
4076 let mut r#funding_property = None;
4077 let mut r#genre_property = None;
4078 let mut r#has_part_property = None;
4079 let mut r#headline_property = None;
4080 let mut r#in_language_property = None;
4081 let mut r#interaction_statistic_property = None;
4082 let mut r#interactivity_type_property = None;
4083 let mut r#interpreted_as_claim_property = None;
4084 let mut r#is_accessible_for_free_property = None;
4085 let mut r#is_based_on_property = None;
4086 let mut r#is_based_on_url_property = None;
4087 let mut r#is_family_friendly_property = None;
4088 let mut r#is_part_of_property = None;
4089 let mut r#keywords_property = None;
4090 let mut r#learning_resource_type_property = None;
4091 let mut r#license_property = None;
4092 let mut r#location_created_property = None;
4093 let mut r#main_entity_property = None;
4094 let mut r#maintainer_property = None;
4095 let mut r#material_property = None;
4096 let mut r#material_extent_property = None;
4097 let mut r#mentions_property = None;
4098 let mut r#offers_property = None;
4099 let mut r#pattern_property = None;
4100 let mut r#position_property = None;
4101 let mut r#producer_property = None;
4102 let mut r#provider_property = None;
4103 let mut r#publication_property = None;
4104 let mut r#publisher_property = None;
4105 let mut r#publisher_imprint_property = None;
4106 let mut r#publishing_principles_property = None;
4107 let mut r#recorded_at_property = None;
4108 let mut r#released_event_property = None;
4109 let mut r#review_property = None;
4110 let mut r#reviews_property = None;
4111 let mut r#schema_version_property = None;
4112 let mut r#sd_date_published_property = None;
4113 let mut r#sd_license_property = None;
4114 let mut r#sd_publisher_property = None;
4115 let mut r#size_property = None;
4116 let mut r#source_organization_property = None;
4117 let mut r#spatial_property = None;
4118 let mut r#spatial_coverage_property = None;
4119 let mut r#sponsor_property = None;
4120 let mut r#teaches_property = None;
4121 let mut r#temporal_property = None;
4122 let mut r#temporal_coverage_property = None;
4123 let mut r#text_property = None;
4124 let mut r#thumbnail_property = None;
4125 let mut r#thumbnail_url_property = None;
4126 let mut r#time_required_property = None;
4127 let mut r#translation_of_work_property = None;
4128 let mut r#translator_property = None;
4129 let mut r#typical_age_range_property = None;
4130 let mut r#usage_info_property = None;
4131 let mut r#version_property = None;
4132 let mut r#video_property = None;
4133 let mut r#work_example_property = None;
4134 let mut r#work_translation_property = None;
4135 let mut r#additional_type_property = None;
4136 let mut r#alternate_name_property = None;
4137 let mut r#description_property = None;
4138 let mut r#disambiguating_description_property = None;
4139 let mut r#identifier_property = None;
4140 let mut r#image_property = None;
4141 let mut r#main_entity_of_page_property = None;
4142 let mut r#name_property = None;
4143 let mut r#potential_action_property = None;
4144 let mut r#same_as_property = None;
4145 let mut r#subject_of_property = None;
4146 let mut r#url_property = None;
4147 while let Some(key) = map.next_key::<Field>()? {
4148 match key {
4149 Field::CharacterAttribute => {
4150 if r#character_attribute_property.is_some() {
4151 return Err(<A::Error as de::Error>::duplicate_field(
4152 "characterAttribute",
4153 ));
4154 }
4155 r#character_attribute_property = Some({
4156 struct DeserializeWith(Vec<CharacterAttributeProperty>);
4157 impl<'de> Deserialize<'de> for DeserializeWith {
4158 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4159 where
4160 D: Deserializer<'de>,
4161 {
4162 Ok(DeserializeWith(serde_with::As::<
4163 serde_with::OneOrMany<serde_with::Same>,
4164 >::deserialize(deserializer)?))
4165 }
4166 }
4167 match map.next_value::<DeserializeWith>() {
4168 Ok(deserialize_with) => deserialize_with.0,
4169 Err(err) => {
4170 return Err(err);
4171 }
4172 }
4173 });
4174 }
4175 Field::GameItem => {
4176 if r#game_item_property.is_some() {
4177 return Err(<A::Error as de::Error>::duplicate_field(
4178 "gameItem",
4179 ));
4180 }
4181 r#game_item_property = Some({
4182 struct DeserializeWith(Vec<GameItemProperty>);
4183 impl<'de> Deserialize<'de> for DeserializeWith {
4184 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4185 where
4186 D: Deserializer<'de>,
4187 {
4188 Ok(DeserializeWith(serde_with::As::<
4189 serde_with::OneOrMany<serde_with::Same>,
4190 >::deserialize(deserializer)?))
4191 }
4192 }
4193 match map.next_value::<DeserializeWith>() {
4194 Ok(deserialize_with) => deserialize_with.0,
4195 Err(err) => {
4196 return Err(err);
4197 }
4198 }
4199 });
4200 }
4201 Field::GameLocation => {
4202 if r#game_location_property.is_some() {
4203 return Err(<A::Error as de::Error>::duplicate_field(
4204 "gameLocation",
4205 ));
4206 }
4207 r#game_location_property = Some({
4208 struct DeserializeWith(Vec<GameLocationProperty>);
4209 impl<'de> Deserialize<'de> for DeserializeWith {
4210 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4211 where
4212 D: Deserializer<'de>,
4213 {
4214 Ok(DeserializeWith(serde_with::As::<
4215 serde_with::OneOrMany<serde_with::Same>,
4216 >::deserialize(deserializer)?))
4217 }
4218 }
4219 match map.next_value::<DeserializeWith>() {
4220 Ok(deserialize_with) => deserialize_with.0,
4221 Err(err) => {
4222 return Err(err);
4223 }
4224 }
4225 });
4226 }
4227 Field::NumberOfPlayers => {
4228 if r#number_of_players_property.is_some() {
4229 return Err(<A::Error as de::Error>::duplicate_field(
4230 "numberOfPlayers",
4231 ));
4232 }
4233 r#number_of_players_property = Some({
4234 struct DeserializeWith(Vec<NumberOfPlayersProperty>);
4235 impl<'de> Deserialize<'de> for DeserializeWith {
4236 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4237 where
4238 D: Deserializer<'de>,
4239 {
4240 Ok(DeserializeWith(serde_with::As::<
4241 serde_with::OneOrMany<serde_with::Same>,
4242 >::deserialize(deserializer)?))
4243 }
4244 }
4245 match map.next_value::<DeserializeWith>() {
4246 Ok(deserialize_with) => deserialize_with.0,
4247 Err(err) => {
4248 return Err(err);
4249 }
4250 }
4251 });
4252 }
4253 Field::Quest => {
4254 if r#quest_property.is_some() {
4255 return Err(<A::Error as de::Error>::duplicate_field("quest"));
4256 }
4257 r#quest_property = Some({
4258 struct DeserializeWith(Vec<QuestProperty>);
4259 impl<'de> Deserialize<'de> for DeserializeWith {
4260 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4261 where
4262 D: Deserializer<'de>,
4263 {
4264 Ok(DeserializeWith(serde_with::As::<
4265 serde_with::OneOrMany<serde_with::Same>,
4266 >::deserialize(deserializer)?))
4267 }
4268 }
4269 match map.next_value::<DeserializeWith>() {
4270 Ok(deserialize_with) => deserialize_with.0,
4271 Err(err) => {
4272 return Err(err);
4273 }
4274 }
4275 });
4276 }
4277 Field::About => {
4278 if r#about_property.is_some() {
4279 return Err(<A::Error as de::Error>::duplicate_field("about"));
4280 }
4281 r#about_property = Some({
4282 struct DeserializeWith(Vec<AboutProperty>);
4283 impl<'de> Deserialize<'de> for DeserializeWith {
4284 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4285 where
4286 D: Deserializer<'de>,
4287 {
4288 Ok(DeserializeWith(serde_with::As::<
4289 serde_with::OneOrMany<serde_with::Same>,
4290 >::deserialize(deserializer)?))
4291 }
4292 }
4293 match map.next_value::<DeserializeWith>() {
4294 Ok(deserialize_with) => deserialize_with.0,
4295 Err(err) => {
4296 return Err(err);
4297 }
4298 }
4299 });
4300 }
4301 Field::Abstract => {
4302 if r#abstract_property.is_some() {
4303 return Err(<A::Error as de::Error>::duplicate_field(
4304 "abstract",
4305 ));
4306 }
4307 r#abstract_property = Some({
4308 struct DeserializeWith(Vec<AbstractProperty>);
4309 impl<'de> Deserialize<'de> for DeserializeWith {
4310 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4311 where
4312 D: Deserializer<'de>,
4313 {
4314 Ok(DeserializeWith(serde_with::As::<
4315 serde_with::OneOrMany<serde_with::Same>,
4316 >::deserialize(deserializer)?))
4317 }
4318 }
4319 match map.next_value::<DeserializeWith>() {
4320 Ok(deserialize_with) => deserialize_with.0,
4321 Err(err) => {
4322 return Err(err);
4323 }
4324 }
4325 });
4326 }
4327 Field::AccessMode => {
4328 if r#access_mode_property.is_some() {
4329 return Err(<A::Error as de::Error>::duplicate_field(
4330 "accessMode",
4331 ));
4332 }
4333 r#access_mode_property = Some({
4334 struct DeserializeWith(Vec<AccessModeProperty>);
4335 impl<'de> Deserialize<'de> for DeserializeWith {
4336 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4337 where
4338 D: Deserializer<'de>,
4339 {
4340 Ok(DeserializeWith(serde_with::As::<
4341 serde_with::OneOrMany<serde_with::Same>,
4342 >::deserialize(deserializer)?))
4343 }
4344 }
4345 match map.next_value::<DeserializeWith>() {
4346 Ok(deserialize_with) => deserialize_with.0,
4347 Err(err) => {
4348 return Err(err);
4349 }
4350 }
4351 });
4352 }
4353 Field::AccessModeSufficient => {
4354 if r#access_mode_sufficient_property.is_some() {
4355 return Err(<A::Error as de::Error>::duplicate_field(
4356 "accessModeSufficient",
4357 ));
4358 }
4359 r#access_mode_sufficient_property = Some({
4360 struct DeserializeWith(Vec<AccessModeSufficientProperty>);
4361 impl<'de> Deserialize<'de> for DeserializeWith {
4362 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4363 where
4364 D: Deserializer<'de>,
4365 {
4366 Ok(DeserializeWith(serde_with::As::<
4367 serde_with::OneOrMany<serde_with::Same>,
4368 >::deserialize(deserializer)?))
4369 }
4370 }
4371 match map.next_value::<DeserializeWith>() {
4372 Ok(deserialize_with) => deserialize_with.0,
4373 Err(err) => {
4374 return Err(err);
4375 }
4376 }
4377 });
4378 }
4379 Field::AccessibilityApi => {
4380 if r#accessibility_api_property.is_some() {
4381 return Err(<A::Error as de::Error>::duplicate_field(
4382 "accessibilityAPI",
4383 ));
4384 }
4385 r#accessibility_api_property = Some({
4386 struct DeserializeWith(Vec<AccessibilityApiProperty>);
4387 impl<'de> Deserialize<'de> for DeserializeWith {
4388 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4389 where
4390 D: Deserializer<'de>,
4391 {
4392 Ok(DeserializeWith(serde_with::As::<
4393 serde_with::OneOrMany<serde_with::Same>,
4394 >::deserialize(deserializer)?))
4395 }
4396 }
4397 match map.next_value::<DeserializeWith>() {
4398 Ok(deserialize_with) => deserialize_with.0,
4399 Err(err) => {
4400 return Err(err);
4401 }
4402 }
4403 });
4404 }
4405 Field::AccessibilityControl => {
4406 if r#accessibility_control_property.is_some() {
4407 return Err(<A::Error as de::Error>::duplicate_field(
4408 "accessibilityControl",
4409 ));
4410 }
4411 r#accessibility_control_property = Some({
4412 struct DeserializeWith(Vec<AccessibilityControlProperty>);
4413 impl<'de> Deserialize<'de> for DeserializeWith {
4414 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4415 where
4416 D: Deserializer<'de>,
4417 {
4418 Ok(DeserializeWith(serde_with::As::<
4419 serde_with::OneOrMany<serde_with::Same>,
4420 >::deserialize(deserializer)?))
4421 }
4422 }
4423 match map.next_value::<DeserializeWith>() {
4424 Ok(deserialize_with) => deserialize_with.0,
4425 Err(err) => {
4426 return Err(err);
4427 }
4428 }
4429 });
4430 }
4431 Field::AccessibilityFeature => {
4432 if r#accessibility_feature_property.is_some() {
4433 return Err(<A::Error as de::Error>::duplicate_field(
4434 "accessibilityFeature",
4435 ));
4436 }
4437 r#accessibility_feature_property = Some({
4438 struct DeserializeWith(Vec<AccessibilityFeatureProperty>);
4439 impl<'de> Deserialize<'de> for DeserializeWith {
4440 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4441 where
4442 D: Deserializer<'de>,
4443 {
4444 Ok(DeserializeWith(serde_with::As::<
4445 serde_with::OneOrMany<serde_with::Same>,
4446 >::deserialize(deserializer)?))
4447 }
4448 }
4449 match map.next_value::<DeserializeWith>() {
4450 Ok(deserialize_with) => deserialize_with.0,
4451 Err(err) => {
4452 return Err(err);
4453 }
4454 }
4455 });
4456 }
4457 Field::AccessibilityHazard => {
4458 if r#accessibility_hazard_property.is_some() {
4459 return Err(<A::Error as de::Error>::duplicate_field(
4460 "accessibilityHazard",
4461 ));
4462 }
4463 r#accessibility_hazard_property = Some({
4464 struct DeserializeWith(Vec<AccessibilityHazardProperty>);
4465 impl<'de> Deserialize<'de> for DeserializeWith {
4466 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4467 where
4468 D: Deserializer<'de>,
4469 {
4470 Ok(DeserializeWith(serde_with::As::<
4471 serde_with::OneOrMany<serde_with::Same>,
4472 >::deserialize(deserializer)?))
4473 }
4474 }
4475 match map.next_value::<DeserializeWith>() {
4476 Ok(deserialize_with) => deserialize_with.0,
4477 Err(err) => {
4478 return Err(err);
4479 }
4480 }
4481 });
4482 }
4483 Field::AccessibilitySummary => {
4484 if r#accessibility_summary_property.is_some() {
4485 return Err(<A::Error as de::Error>::duplicate_field(
4486 "accessibilitySummary",
4487 ));
4488 }
4489 r#accessibility_summary_property = Some({
4490 struct DeserializeWith(Vec<AccessibilitySummaryProperty>);
4491 impl<'de> Deserialize<'de> for DeserializeWith {
4492 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4493 where
4494 D: Deserializer<'de>,
4495 {
4496 Ok(DeserializeWith(serde_with::As::<
4497 serde_with::OneOrMany<serde_with::Same>,
4498 >::deserialize(deserializer)?))
4499 }
4500 }
4501 match map.next_value::<DeserializeWith>() {
4502 Ok(deserialize_with) => deserialize_with.0,
4503 Err(err) => {
4504 return Err(err);
4505 }
4506 }
4507 });
4508 }
4509 Field::AccountablePerson => {
4510 if r#accountable_person_property.is_some() {
4511 return Err(<A::Error as de::Error>::duplicate_field(
4512 "accountablePerson",
4513 ));
4514 }
4515 r#accountable_person_property = Some({
4516 struct DeserializeWith(Vec<AccountablePersonProperty>);
4517 impl<'de> Deserialize<'de> for DeserializeWith {
4518 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4519 where
4520 D: Deserializer<'de>,
4521 {
4522 Ok(DeserializeWith(serde_with::As::<
4523 serde_with::OneOrMany<serde_with::Same>,
4524 >::deserialize(deserializer)?))
4525 }
4526 }
4527 match map.next_value::<DeserializeWith>() {
4528 Ok(deserialize_with) => deserialize_with.0,
4529 Err(err) => {
4530 return Err(err);
4531 }
4532 }
4533 });
4534 }
4535 Field::AcquireLicensePage => {
4536 if r#acquire_license_page_property.is_some() {
4537 return Err(<A::Error as de::Error>::duplicate_field(
4538 "acquireLicensePage",
4539 ));
4540 }
4541 r#acquire_license_page_property = Some({
4542 struct DeserializeWith(Vec<AcquireLicensePageProperty>);
4543 impl<'de> Deserialize<'de> for DeserializeWith {
4544 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4545 where
4546 D: Deserializer<'de>,
4547 {
4548 Ok(DeserializeWith(serde_with::As::<
4549 serde_with::OneOrMany<serde_with::Same>,
4550 >::deserialize(deserializer)?))
4551 }
4552 }
4553 match map.next_value::<DeserializeWith>() {
4554 Ok(deserialize_with) => deserialize_with.0,
4555 Err(err) => {
4556 return Err(err);
4557 }
4558 }
4559 });
4560 }
4561 Field::AggregateRating => {
4562 if r#aggregate_rating_property.is_some() {
4563 return Err(<A::Error as de::Error>::duplicate_field(
4564 "aggregateRating",
4565 ));
4566 }
4567 r#aggregate_rating_property = Some({
4568 struct DeserializeWith(Vec<AggregateRatingProperty>);
4569 impl<'de> Deserialize<'de> for DeserializeWith {
4570 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4571 where
4572 D: Deserializer<'de>,
4573 {
4574 Ok(DeserializeWith(serde_with::As::<
4575 serde_with::OneOrMany<serde_with::Same>,
4576 >::deserialize(deserializer)?))
4577 }
4578 }
4579 match map.next_value::<DeserializeWith>() {
4580 Ok(deserialize_with) => deserialize_with.0,
4581 Err(err) => {
4582 return Err(err);
4583 }
4584 }
4585 });
4586 }
4587 Field::AlternativeHeadline => {
4588 if r#alternative_headline_property.is_some() {
4589 return Err(<A::Error as de::Error>::duplicate_field(
4590 "alternativeHeadline",
4591 ));
4592 }
4593 r#alternative_headline_property = Some({
4594 struct DeserializeWith(Vec<AlternativeHeadlineProperty>);
4595 impl<'de> Deserialize<'de> for DeserializeWith {
4596 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4597 where
4598 D: Deserializer<'de>,
4599 {
4600 Ok(DeserializeWith(serde_with::As::<
4601 serde_with::OneOrMany<serde_with::Same>,
4602 >::deserialize(deserializer)?))
4603 }
4604 }
4605 match map.next_value::<DeserializeWith>() {
4606 Ok(deserialize_with) => deserialize_with.0,
4607 Err(err) => {
4608 return Err(err);
4609 }
4610 }
4611 });
4612 }
4613 Field::ArchivedAt => {
4614 if r#archived_at_property.is_some() {
4615 return Err(<A::Error as de::Error>::duplicate_field(
4616 "archivedAt",
4617 ));
4618 }
4619 r#archived_at_property = Some({
4620 struct DeserializeWith(Vec<ArchivedAtProperty>);
4621 impl<'de> Deserialize<'de> for DeserializeWith {
4622 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4623 where
4624 D: Deserializer<'de>,
4625 {
4626 Ok(DeserializeWith(serde_with::As::<
4627 serde_with::OneOrMany<serde_with::Same>,
4628 >::deserialize(deserializer)?))
4629 }
4630 }
4631 match map.next_value::<DeserializeWith>() {
4632 Ok(deserialize_with) => deserialize_with.0,
4633 Err(err) => {
4634 return Err(err);
4635 }
4636 }
4637 });
4638 }
4639 Field::Assesses => {
4640 if r#assesses_property.is_some() {
4641 return Err(<A::Error as de::Error>::duplicate_field(
4642 "assesses",
4643 ));
4644 }
4645 r#assesses_property = Some({
4646 struct DeserializeWith(Vec<AssessesProperty>);
4647 impl<'de> Deserialize<'de> for DeserializeWith {
4648 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4649 where
4650 D: Deserializer<'de>,
4651 {
4652 Ok(DeserializeWith(serde_with::As::<
4653 serde_with::OneOrMany<serde_with::Same>,
4654 >::deserialize(deserializer)?))
4655 }
4656 }
4657 match map.next_value::<DeserializeWith>() {
4658 Ok(deserialize_with) => deserialize_with.0,
4659 Err(err) => {
4660 return Err(err);
4661 }
4662 }
4663 });
4664 }
4665 Field::AssociatedMedia => {
4666 if r#associated_media_property.is_some() {
4667 return Err(<A::Error as de::Error>::duplicate_field(
4668 "associatedMedia",
4669 ));
4670 }
4671 r#associated_media_property = Some({
4672 struct DeserializeWith(Vec<AssociatedMediaProperty>);
4673 impl<'de> Deserialize<'de> for DeserializeWith {
4674 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4675 where
4676 D: Deserializer<'de>,
4677 {
4678 Ok(DeserializeWith(serde_with::As::<
4679 serde_with::OneOrMany<serde_with::Same>,
4680 >::deserialize(deserializer)?))
4681 }
4682 }
4683 match map.next_value::<DeserializeWith>() {
4684 Ok(deserialize_with) => deserialize_with.0,
4685 Err(err) => {
4686 return Err(err);
4687 }
4688 }
4689 });
4690 }
4691 Field::Audience => {
4692 if r#audience_property.is_some() {
4693 return Err(<A::Error as de::Error>::duplicate_field(
4694 "audience",
4695 ));
4696 }
4697 r#audience_property = Some({
4698 struct DeserializeWith(Vec<AudienceProperty>);
4699 impl<'de> Deserialize<'de> for DeserializeWith {
4700 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4701 where
4702 D: Deserializer<'de>,
4703 {
4704 Ok(DeserializeWith(serde_with::As::<
4705 serde_with::OneOrMany<serde_with::Same>,
4706 >::deserialize(deserializer)?))
4707 }
4708 }
4709 match map.next_value::<DeserializeWith>() {
4710 Ok(deserialize_with) => deserialize_with.0,
4711 Err(err) => {
4712 return Err(err);
4713 }
4714 }
4715 });
4716 }
4717 Field::Audio => {
4718 if r#audio_property.is_some() {
4719 return Err(<A::Error as de::Error>::duplicate_field("audio"));
4720 }
4721 r#audio_property = Some({
4722 struct DeserializeWith(Vec<AudioProperty>);
4723 impl<'de> Deserialize<'de> for DeserializeWith {
4724 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4725 where
4726 D: Deserializer<'de>,
4727 {
4728 Ok(DeserializeWith(serde_with::As::<
4729 serde_with::OneOrMany<serde_with::Same>,
4730 >::deserialize(deserializer)?))
4731 }
4732 }
4733 match map.next_value::<DeserializeWith>() {
4734 Ok(deserialize_with) => deserialize_with.0,
4735 Err(err) => {
4736 return Err(err);
4737 }
4738 }
4739 });
4740 }
4741 Field::Author => {
4742 if r#author_property.is_some() {
4743 return Err(<A::Error as de::Error>::duplicate_field("author"));
4744 }
4745 r#author_property = Some({
4746 struct DeserializeWith(Vec<AuthorProperty>);
4747 impl<'de> Deserialize<'de> for DeserializeWith {
4748 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4749 where
4750 D: Deserializer<'de>,
4751 {
4752 Ok(DeserializeWith(serde_with::As::<
4753 serde_with::OneOrMany<serde_with::Same>,
4754 >::deserialize(deserializer)?))
4755 }
4756 }
4757 match map.next_value::<DeserializeWith>() {
4758 Ok(deserialize_with) => deserialize_with.0,
4759 Err(err) => {
4760 return Err(err);
4761 }
4762 }
4763 });
4764 }
4765 Field::Award => {
4766 if r#award_property.is_some() {
4767 return Err(<A::Error as de::Error>::duplicate_field("award"));
4768 }
4769 r#award_property = Some({
4770 struct DeserializeWith(Vec<AwardProperty>);
4771 impl<'de> Deserialize<'de> for DeserializeWith {
4772 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4773 where
4774 D: Deserializer<'de>,
4775 {
4776 Ok(DeserializeWith(serde_with::As::<
4777 serde_with::OneOrMany<serde_with::Same>,
4778 >::deserialize(deserializer)?))
4779 }
4780 }
4781 match map.next_value::<DeserializeWith>() {
4782 Ok(deserialize_with) => deserialize_with.0,
4783 Err(err) => {
4784 return Err(err);
4785 }
4786 }
4787 });
4788 }
4789 Field::Awards => {
4790 if r#awards_property.is_some() {
4791 return Err(<A::Error as de::Error>::duplicate_field("awards"));
4792 }
4793 r#awards_property = Some({
4794 struct DeserializeWith(Vec<AwardsProperty>);
4795 impl<'de> Deserialize<'de> for DeserializeWith {
4796 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4797 where
4798 D: Deserializer<'de>,
4799 {
4800 Ok(DeserializeWith(serde_with::As::<
4801 serde_with::OneOrMany<serde_with::Same>,
4802 >::deserialize(deserializer)?))
4803 }
4804 }
4805 match map.next_value::<DeserializeWith>() {
4806 Ok(deserialize_with) => deserialize_with.0,
4807 Err(err) => {
4808 return Err(err);
4809 }
4810 }
4811 });
4812 }
4813 Field::Character => {
4814 if r#character_property.is_some() {
4815 return Err(<A::Error as de::Error>::duplicate_field(
4816 "character",
4817 ));
4818 }
4819 r#character_property = Some({
4820 struct DeserializeWith(Vec<CharacterProperty>);
4821 impl<'de> Deserialize<'de> for DeserializeWith {
4822 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4823 where
4824 D: Deserializer<'de>,
4825 {
4826 Ok(DeserializeWith(serde_with::As::<
4827 serde_with::OneOrMany<serde_with::Same>,
4828 >::deserialize(deserializer)?))
4829 }
4830 }
4831 match map.next_value::<DeserializeWith>() {
4832 Ok(deserialize_with) => deserialize_with.0,
4833 Err(err) => {
4834 return Err(err);
4835 }
4836 }
4837 });
4838 }
4839 Field::Citation => {
4840 if r#citation_property.is_some() {
4841 return Err(<A::Error as de::Error>::duplicate_field(
4842 "citation",
4843 ));
4844 }
4845 r#citation_property = Some({
4846 struct DeserializeWith(Vec<CitationProperty>);
4847 impl<'de> Deserialize<'de> for DeserializeWith {
4848 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4849 where
4850 D: Deserializer<'de>,
4851 {
4852 Ok(DeserializeWith(serde_with::As::<
4853 serde_with::OneOrMany<serde_with::Same>,
4854 >::deserialize(deserializer)?))
4855 }
4856 }
4857 match map.next_value::<DeserializeWith>() {
4858 Ok(deserialize_with) => deserialize_with.0,
4859 Err(err) => {
4860 return Err(err);
4861 }
4862 }
4863 });
4864 }
4865 Field::Comment => {
4866 if r#comment_property.is_some() {
4867 return Err(<A::Error as de::Error>::duplicate_field(
4868 "comment",
4869 ));
4870 }
4871 r#comment_property = Some({
4872 struct DeserializeWith(Vec<CommentProperty>);
4873 impl<'de> Deserialize<'de> for DeserializeWith {
4874 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4875 where
4876 D: Deserializer<'de>,
4877 {
4878 Ok(DeserializeWith(serde_with::As::<
4879 serde_with::OneOrMany<serde_with::Same>,
4880 >::deserialize(deserializer)?))
4881 }
4882 }
4883 match map.next_value::<DeserializeWith>() {
4884 Ok(deserialize_with) => deserialize_with.0,
4885 Err(err) => {
4886 return Err(err);
4887 }
4888 }
4889 });
4890 }
4891 Field::CommentCount => {
4892 if r#comment_count_property.is_some() {
4893 return Err(<A::Error as de::Error>::duplicate_field(
4894 "commentCount",
4895 ));
4896 }
4897 r#comment_count_property = Some({
4898 struct DeserializeWith(Vec<CommentCountProperty>);
4899 impl<'de> Deserialize<'de> for DeserializeWith {
4900 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4901 where
4902 D: Deserializer<'de>,
4903 {
4904 Ok(DeserializeWith(serde_with::As::<
4905 serde_with::OneOrMany<serde_with::Same>,
4906 >::deserialize(deserializer)?))
4907 }
4908 }
4909 match map.next_value::<DeserializeWith>() {
4910 Ok(deserialize_with) => deserialize_with.0,
4911 Err(err) => {
4912 return Err(err);
4913 }
4914 }
4915 });
4916 }
4917 Field::ConditionsOfAccess => {
4918 if r#conditions_of_access_property.is_some() {
4919 return Err(<A::Error as de::Error>::duplicate_field(
4920 "conditionsOfAccess",
4921 ));
4922 }
4923 r#conditions_of_access_property = Some({
4924 struct DeserializeWith(Vec<ConditionsOfAccessProperty>);
4925 impl<'de> Deserialize<'de> for DeserializeWith {
4926 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4927 where
4928 D: Deserializer<'de>,
4929 {
4930 Ok(DeserializeWith(serde_with::As::<
4931 serde_with::OneOrMany<serde_with::Same>,
4932 >::deserialize(deserializer)?))
4933 }
4934 }
4935 match map.next_value::<DeserializeWith>() {
4936 Ok(deserialize_with) => deserialize_with.0,
4937 Err(err) => {
4938 return Err(err);
4939 }
4940 }
4941 });
4942 }
4943 Field::ContentLocation => {
4944 if r#content_location_property.is_some() {
4945 return Err(<A::Error as de::Error>::duplicate_field(
4946 "contentLocation",
4947 ));
4948 }
4949 r#content_location_property = Some({
4950 struct DeserializeWith(Vec<ContentLocationProperty>);
4951 impl<'de> Deserialize<'de> for DeserializeWith {
4952 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4953 where
4954 D: Deserializer<'de>,
4955 {
4956 Ok(DeserializeWith(serde_with::As::<
4957 serde_with::OneOrMany<serde_with::Same>,
4958 >::deserialize(deserializer)?))
4959 }
4960 }
4961 match map.next_value::<DeserializeWith>() {
4962 Ok(deserialize_with) => deserialize_with.0,
4963 Err(err) => {
4964 return Err(err);
4965 }
4966 }
4967 });
4968 }
4969 Field::ContentRating => {
4970 if r#content_rating_property.is_some() {
4971 return Err(<A::Error as de::Error>::duplicate_field(
4972 "contentRating",
4973 ));
4974 }
4975 r#content_rating_property = Some({
4976 struct DeserializeWith(Vec<ContentRatingProperty>);
4977 impl<'de> Deserialize<'de> for DeserializeWith {
4978 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4979 where
4980 D: Deserializer<'de>,
4981 {
4982 Ok(DeserializeWith(serde_with::As::<
4983 serde_with::OneOrMany<serde_with::Same>,
4984 >::deserialize(deserializer)?))
4985 }
4986 }
4987 match map.next_value::<DeserializeWith>() {
4988 Ok(deserialize_with) => deserialize_with.0,
4989 Err(err) => {
4990 return Err(err);
4991 }
4992 }
4993 });
4994 }
4995 Field::ContentReferenceTime => {
4996 if r#content_reference_time_property.is_some() {
4997 return Err(<A::Error as de::Error>::duplicate_field(
4998 "contentReferenceTime",
4999 ));
5000 }
5001 r#content_reference_time_property = Some({
5002 struct DeserializeWith(Vec<ContentReferenceTimeProperty>);
5003 impl<'de> Deserialize<'de> for DeserializeWith {
5004 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5005 where
5006 D: Deserializer<'de>,
5007 {
5008 Ok(DeserializeWith(serde_with::As::<
5009 serde_with::OneOrMany<serde_with::Same>,
5010 >::deserialize(deserializer)?))
5011 }
5012 }
5013 match map.next_value::<DeserializeWith>() {
5014 Ok(deserialize_with) => deserialize_with.0,
5015 Err(err) => {
5016 return Err(err);
5017 }
5018 }
5019 });
5020 }
5021 Field::Contributor => {
5022 if r#contributor_property.is_some() {
5023 return Err(<A::Error as de::Error>::duplicate_field(
5024 "contributor",
5025 ));
5026 }
5027 r#contributor_property = Some({
5028 struct DeserializeWith(Vec<ContributorProperty>);
5029 impl<'de> Deserialize<'de> for DeserializeWith {
5030 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5031 where
5032 D: Deserializer<'de>,
5033 {
5034 Ok(DeserializeWith(serde_with::As::<
5035 serde_with::OneOrMany<serde_with::Same>,
5036 >::deserialize(deserializer)?))
5037 }
5038 }
5039 match map.next_value::<DeserializeWith>() {
5040 Ok(deserialize_with) => deserialize_with.0,
5041 Err(err) => {
5042 return Err(err);
5043 }
5044 }
5045 });
5046 }
5047 Field::CopyrightHolder => {
5048 if r#copyright_holder_property.is_some() {
5049 return Err(<A::Error as de::Error>::duplicate_field(
5050 "copyrightHolder",
5051 ));
5052 }
5053 r#copyright_holder_property = Some({
5054 struct DeserializeWith(Vec<CopyrightHolderProperty>);
5055 impl<'de> Deserialize<'de> for DeserializeWith {
5056 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5057 where
5058 D: Deserializer<'de>,
5059 {
5060 Ok(DeserializeWith(serde_with::As::<
5061 serde_with::OneOrMany<serde_with::Same>,
5062 >::deserialize(deserializer)?))
5063 }
5064 }
5065 match map.next_value::<DeserializeWith>() {
5066 Ok(deserialize_with) => deserialize_with.0,
5067 Err(err) => {
5068 return Err(err);
5069 }
5070 }
5071 });
5072 }
5073 Field::CopyrightNotice => {
5074 if r#copyright_notice_property.is_some() {
5075 return Err(<A::Error as de::Error>::duplicate_field(
5076 "copyrightNotice",
5077 ));
5078 }
5079 r#copyright_notice_property = Some({
5080 struct DeserializeWith(Vec<CopyrightNoticeProperty>);
5081 impl<'de> Deserialize<'de> for DeserializeWith {
5082 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5083 where
5084 D: Deserializer<'de>,
5085 {
5086 Ok(DeserializeWith(serde_with::As::<
5087 serde_with::OneOrMany<serde_with::Same>,
5088 >::deserialize(deserializer)?))
5089 }
5090 }
5091 match map.next_value::<DeserializeWith>() {
5092 Ok(deserialize_with) => deserialize_with.0,
5093 Err(err) => {
5094 return Err(err);
5095 }
5096 }
5097 });
5098 }
5099 Field::CopyrightYear => {
5100 if r#copyright_year_property.is_some() {
5101 return Err(<A::Error as de::Error>::duplicate_field(
5102 "copyrightYear",
5103 ));
5104 }
5105 r#copyright_year_property = Some({
5106 struct DeserializeWith(Vec<CopyrightYearProperty>);
5107 impl<'de> Deserialize<'de> for DeserializeWith {
5108 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5109 where
5110 D: Deserializer<'de>,
5111 {
5112 Ok(DeserializeWith(serde_with::As::<
5113 serde_with::OneOrMany<serde_with::Same>,
5114 >::deserialize(deserializer)?))
5115 }
5116 }
5117 match map.next_value::<DeserializeWith>() {
5118 Ok(deserialize_with) => deserialize_with.0,
5119 Err(err) => {
5120 return Err(err);
5121 }
5122 }
5123 });
5124 }
5125 Field::Correction => {
5126 if r#correction_property.is_some() {
5127 return Err(<A::Error as de::Error>::duplicate_field(
5128 "correction",
5129 ));
5130 }
5131 r#correction_property = Some({
5132 struct DeserializeWith(Vec<CorrectionProperty>);
5133 impl<'de> Deserialize<'de> for DeserializeWith {
5134 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5135 where
5136 D: Deserializer<'de>,
5137 {
5138 Ok(DeserializeWith(serde_with::As::<
5139 serde_with::OneOrMany<serde_with::Same>,
5140 >::deserialize(deserializer)?))
5141 }
5142 }
5143 match map.next_value::<DeserializeWith>() {
5144 Ok(deserialize_with) => deserialize_with.0,
5145 Err(err) => {
5146 return Err(err);
5147 }
5148 }
5149 });
5150 }
5151 Field::CountryOfOrigin => {
5152 if r#country_of_origin_property.is_some() {
5153 return Err(<A::Error as de::Error>::duplicate_field(
5154 "countryOfOrigin",
5155 ));
5156 }
5157 r#country_of_origin_property = Some({
5158 struct DeserializeWith(Vec<CountryOfOriginProperty>);
5159 impl<'de> Deserialize<'de> for DeserializeWith {
5160 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5161 where
5162 D: Deserializer<'de>,
5163 {
5164 Ok(DeserializeWith(serde_with::As::<
5165 serde_with::OneOrMany<serde_with::Same>,
5166 >::deserialize(deserializer)?))
5167 }
5168 }
5169 match map.next_value::<DeserializeWith>() {
5170 Ok(deserialize_with) => deserialize_with.0,
5171 Err(err) => {
5172 return Err(err);
5173 }
5174 }
5175 });
5176 }
5177 Field::CreativeWorkStatus => {
5178 if r#creative_work_status_property.is_some() {
5179 return Err(<A::Error as de::Error>::duplicate_field(
5180 "creativeWorkStatus",
5181 ));
5182 }
5183 r#creative_work_status_property = Some({
5184 struct DeserializeWith(Vec<CreativeWorkStatusProperty>);
5185 impl<'de> Deserialize<'de> for DeserializeWith {
5186 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5187 where
5188 D: Deserializer<'de>,
5189 {
5190 Ok(DeserializeWith(serde_with::As::<
5191 serde_with::OneOrMany<serde_with::Same>,
5192 >::deserialize(deserializer)?))
5193 }
5194 }
5195 match map.next_value::<DeserializeWith>() {
5196 Ok(deserialize_with) => deserialize_with.0,
5197 Err(err) => {
5198 return Err(err);
5199 }
5200 }
5201 });
5202 }
5203 Field::Creator => {
5204 if r#creator_property.is_some() {
5205 return Err(<A::Error as de::Error>::duplicate_field(
5206 "creator",
5207 ));
5208 }
5209 r#creator_property = Some({
5210 struct DeserializeWith(Vec<CreatorProperty>);
5211 impl<'de> Deserialize<'de> for DeserializeWith {
5212 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5213 where
5214 D: Deserializer<'de>,
5215 {
5216 Ok(DeserializeWith(serde_with::As::<
5217 serde_with::OneOrMany<serde_with::Same>,
5218 >::deserialize(deserializer)?))
5219 }
5220 }
5221 match map.next_value::<DeserializeWith>() {
5222 Ok(deserialize_with) => deserialize_with.0,
5223 Err(err) => {
5224 return Err(err);
5225 }
5226 }
5227 });
5228 }
5229 Field::CreditText => {
5230 if r#credit_text_property.is_some() {
5231 return Err(<A::Error as de::Error>::duplicate_field(
5232 "creditText",
5233 ));
5234 }
5235 r#credit_text_property = Some({
5236 struct DeserializeWith(Vec<CreditTextProperty>);
5237 impl<'de> Deserialize<'de> for DeserializeWith {
5238 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5239 where
5240 D: Deserializer<'de>,
5241 {
5242 Ok(DeserializeWith(serde_with::As::<
5243 serde_with::OneOrMany<serde_with::Same>,
5244 >::deserialize(deserializer)?))
5245 }
5246 }
5247 match map.next_value::<DeserializeWith>() {
5248 Ok(deserialize_with) => deserialize_with.0,
5249 Err(err) => {
5250 return Err(err);
5251 }
5252 }
5253 });
5254 }
5255 Field::DateCreated => {
5256 if r#date_created_property.is_some() {
5257 return Err(<A::Error as de::Error>::duplicate_field(
5258 "dateCreated",
5259 ));
5260 }
5261 r#date_created_property = Some({
5262 struct DeserializeWith(Vec<DateCreatedProperty>);
5263 impl<'de> Deserialize<'de> for DeserializeWith {
5264 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5265 where
5266 D: Deserializer<'de>,
5267 {
5268 Ok(DeserializeWith(serde_with::As::<
5269 serde_with::OneOrMany<serde_with::Same>,
5270 >::deserialize(deserializer)?))
5271 }
5272 }
5273 match map.next_value::<DeserializeWith>() {
5274 Ok(deserialize_with) => deserialize_with.0,
5275 Err(err) => {
5276 return Err(err);
5277 }
5278 }
5279 });
5280 }
5281 Field::DateModified => {
5282 if r#date_modified_property.is_some() {
5283 return Err(<A::Error as de::Error>::duplicate_field(
5284 "dateModified",
5285 ));
5286 }
5287 r#date_modified_property = Some({
5288 struct DeserializeWith(Vec<DateModifiedProperty>);
5289 impl<'de> Deserialize<'de> for DeserializeWith {
5290 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5291 where
5292 D: Deserializer<'de>,
5293 {
5294 Ok(DeserializeWith(serde_with::As::<
5295 serde_with::OneOrMany<serde_with::Same>,
5296 >::deserialize(deserializer)?))
5297 }
5298 }
5299 match map.next_value::<DeserializeWith>() {
5300 Ok(deserialize_with) => deserialize_with.0,
5301 Err(err) => {
5302 return Err(err);
5303 }
5304 }
5305 });
5306 }
5307 Field::DatePublished => {
5308 if r#date_published_property.is_some() {
5309 return Err(<A::Error as de::Error>::duplicate_field(
5310 "datePublished",
5311 ));
5312 }
5313 r#date_published_property = Some({
5314 struct DeserializeWith(Vec<DatePublishedProperty>);
5315 impl<'de> Deserialize<'de> for DeserializeWith {
5316 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5317 where
5318 D: Deserializer<'de>,
5319 {
5320 Ok(DeserializeWith(serde_with::As::<
5321 serde_with::OneOrMany<serde_with::Same>,
5322 >::deserialize(deserializer)?))
5323 }
5324 }
5325 match map.next_value::<DeserializeWith>() {
5326 Ok(deserialize_with) => deserialize_with.0,
5327 Err(err) => {
5328 return Err(err);
5329 }
5330 }
5331 });
5332 }
5333 Field::DiscussionUrl => {
5334 if r#discussion_url_property.is_some() {
5335 return Err(<A::Error as de::Error>::duplicate_field(
5336 "discussionUrl",
5337 ));
5338 }
5339 r#discussion_url_property = Some({
5340 struct DeserializeWith(Vec<DiscussionUrlProperty>);
5341 impl<'de> Deserialize<'de> for DeserializeWith {
5342 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5343 where
5344 D: Deserializer<'de>,
5345 {
5346 Ok(DeserializeWith(serde_with::As::<
5347 serde_with::OneOrMany<serde_with::Same>,
5348 >::deserialize(deserializer)?))
5349 }
5350 }
5351 match map.next_value::<DeserializeWith>() {
5352 Ok(deserialize_with) => deserialize_with.0,
5353 Err(err) => {
5354 return Err(err);
5355 }
5356 }
5357 });
5358 }
5359 Field::EditEidr => {
5360 if r#edit_eidr_property.is_some() {
5361 return Err(<A::Error as de::Error>::duplicate_field(
5362 "editEIDR",
5363 ));
5364 }
5365 r#edit_eidr_property = Some({
5366 struct DeserializeWith(Vec<EditEidrProperty>);
5367 impl<'de> Deserialize<'de> for DeserializeWith {
5368 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5369 where
5370 D: Deserializer<'de>,
5371 {
5372 Ok(DeserializeWith(serde_with::As::<
5373 serde_with::OneOrMany<serde_with::Same>,
5374 >::deserialize(deserializer)?))
5375 }
5376 }
5377 match map.next_value::<DeserializeWith>() {
5378 Ok(deserialize_with) => deserialize_with.0,
5379 Err(err) => {
5380 return Err(err);
5381 }
5382 }
5383 });
5384 }
5385 Field::Editor => {
5386 if r#editor_property.is_some() {
5387 return Err(<A::Error as de::Error>::duplicate_field("editor"));
5388 }
5389 r#editor_property = Some({
5390 struct DeserializeWith(Vec<EditorProperty>);
5391 impl<'de> Deserialize<'de> for DeserializeWith {
5392 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5393 where
5394 D: Deserializer<'de>,
5395 {
5396 Ok(DeserializeWith(serde_with::As::<
5397 serde_with::OneOrMany<serde_with::Same>,
5398 >::deserialize(deserializer)?))
5399 }
5400 }
5401 match map.next_value::<DeserializeWith>() {
5402 Ok(deserialize_with) => deserialize_with.0,
5403 Err(err) => {
5404 return Err(err);
5405 }
5406 }
5407 });
5408 }
5409 Field::EducationalAlignment => {
5410 if r#educational_alignment_property.is_some() {
5411 return Err(<A::Error as de::Error>::duplicate_field(
5412 "educationalAlignment",
5413 ));
5414 }
5415 r#educational_alignment_property = Some({
5416 struct DeserializeWith(Vec<EducationalAlignmentProperty>);
5417 impl<'de> Deserialize<'de> for DeserializeWith {
5418 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5419 where
5420 D: Deserializer<'de>,
5421 {
5422 Ok(DeserializeWith(serde_with::As::<
5423 serde_with::OneOrMany<serde_with::Same>,
5424 >::deserialize(deserializer)?))
5425 }
5426 }
5427 match map.next_value::<DeserializeWith>() {
5428 Ok(deserialize_with) => deserialize_with.0,
5429 Err(err) => {
5430 return Err(err);
5431 }
5432 }
5433 });
5434 }
5435 Field::EducationalLevel => {
5436 if r#educational_level_property.is_some() {
5437 return Err(<A::Error as de::Error>::duplicate_field(
5438 "educationalLevel",
5439 ));
5440 }
5441 r#educational_level_property = Some({
5442 struct DeserializeWith(Vec<EducationalLevelProperty>);
5443 impl<'de> Deserialize<'de> for DeserializeWith {
5444 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5445 where
5446 D: Deserializer<'de>,
5447 {
5448 Ok(DeserializeWith(serde_with::As::<
5449 serde_with::OneOrMany<serde_with::Same>,
5450 >::deserialize(deserializer)?))
5451 }
5452 }
5453 match map.next_value::<DeserializeWith>() {
5454 Ok(deserialize_with) => deserialize_with.0,
5455 Err(err) => {
5456 return Err(err);
5457 }
5458 }
5459 });
5460 }
5461 Field::EducationalUse => {
5462 if r#educational_use_property.is_some() {
5463 return Err(<A::Error as de::Error>::duplicate_field(
5464 "educationalUse",
5465 ));
5466 }
5467 r#educational_use_property = Some({
5468 struct DeserializeWith(Vec<EducationalUseProperty>);
5469 impl<'de> Deserialize<'de> for DeserializeWith {
5470 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5471 where
5472 D: Deserializer<'de>,
5473 {
5474 Ok(DeserializeWith(serde_with::As::<
5475 serde_with::OneOrMany<serde_with::Same>,
5476 >::deserialize(deserializer)?))
5477 }
5478 }
5479 match map.next_value::<DeserializeWith>() {
5480 Ok(deserialize_with) => deserialize_with.0,
5481 Err(err) => {
5482 return Err(err);
5483 }
5484 }
5485 });
5486 }
5487 Field::Encoding => {
5488 if r#encoding_property.is_some() {
5489 return Err(<A::Error as de::Error>::duplicate_field(
5490 "encoding",
5491 ));
5492 }
5493 r#encoding_property = Some({
5494 struct DeserializeWith(Vec<EncodingProperty>);
5495 impl<'de> Deserialize<'de> for DeserializeWith {
5496 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5497 where
5498 D: Deserializer<'de>,
5499 {
5500 Ok(DeserializeWith(serde_with::As::<
5501 serde_with::OneOrMany<serde_with::Same>,
5502 >::deserialize(deserializer)?))
5503 }
5504 }
5505 match map.next_value::<DeserializeWith>() {
5506 Ok(deserialize_with) => deserialize_with.0,
5507 Err(err) => {
5508 return Err(err);
5509 }
5510 }
5511 });
5512 }
5513 Field::EncodingFormat => {
5514 if r#encoding_format_property.is_some() {
5515 return Err(<A::Error as de::Error>::duplicate_field(
5516 "encodingFormat",
5517 ));
5518 }
5519 r#encoding_format_property = Some({
5520 struct DeserializeWith(Vec<EncodingFormatProperty>);
5521 impl<'de> Deserialize<'de> for DeserializeWith {
5522 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5523 where
5524 D: Deserializer<'de>,
5525 {
5526 Ok(DeserializeWith(serde_with::As::<
5527 serde_with::OneOrMany<serde_with::Same>,
5528 >::deserialize(deserializer)?))
5529 }
5530 }
5531 match map.next_value::<DeserializeWith>() {
5532 Ok(deserialize_with) => deserialize_with.0,
5533 Err(err) => {
5534 return Err(err);
5535 }
5536 }
5537 });
5538 }
5539 Field::Encodings => {
5540 if r#encodings_property.is_some() {
5541 return Err(<A::Error as de::Error>::duplicate_field(
5542 "encodings",
5543 ));
5544 }
5545 r#encodings_property = Some({
5546 struct DeserializeWith(Vec<EncodingsProperty>);
5547 impl<'de> Deserialize<'de> for DeserializeWith {
5548 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5549 where
5550 D: Deserializer<'de>,
5551 {
5552 Ok(DeserializeWith(serde_with::As::<
5553 serde_with::OneOrMany<serde_with::Same>,
5554 >::deserialize(deserializer)?))
5555 }
5556 }
5557 match map.next_value::<DeserializeWith>() {
5558 Ok(deserialize_with) => deserialize_with.0,
5559 Err(err) => {
5560 return Err(err);
5561 }
5562 }
5563 });
5564 }
5565 Field::ExampleOfWork => {
5566 if r#example_of_work_property.is_some() {
5567 return Err(<A::Error as de::Error>::duplicate_field(
5568 "exampleOfWork",
5569 ));
5570 }
5571 r#example_of_work_property = Some({
5572 struct DeserializeWith(Vec<ExampleOfWorkProperty>);
5573 impl<'de> Deserialize<'de> for DeserializeWith {
5574 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5575 where
5576 D: Deserializer<'de>,
5577 {
5578 Ok(DeserializeWith(serde_with::As::<
5579 serde_with::OneOrMany<serde_with::Same>,
5580 >::deserialize(deserializer)?))
5581 }
5582 }
5583 match map.next_value::<DeserializeWith>() {
5584 Ok(deserialize_with) => deserialize_with.0,
5585 Err(err) => {
5586 return Err(err);
5587 }
5588 }
5589 });
5590 }
5591 Field::Expires => {
5592 if r#expires_property.is_some() {
5593 return Err(<A::Error as de::Error>::duplicate_field(
5594 "expires",
5595 ));
5596 }
5597 r#expires_property = Some({
5598 struct DeserializeWith(Vec<ExpiresProperty>);
5599 impl<'de> Deserialize<'de> for DeserializeWith {
5600 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5601 where
5602 D: Deserializer<'de>,
5603 {
5604 Ok(DeserializeWith(serde_with::As::<
5605 serde_with::OneOrMany<serde_with::Same>,
5606 >::deserialize(deserializer)?))
5607 }
5608 }
5609 match map.next_value::<DeserializeWith>() {
5610 Ok(deserialize_with) => deserialize_with.0,
5611 Err(err) => {
5612 return Err(err);
5613 }
5614 }
5615 });
5616 }
5617 Field::FileFormat => {
5618 if r#file_format_property.is_some() {
5619 return Err(<A::Error as de::Error>::duplicate_field(
5620 "fileFormat",
5621 ));
5622 }
5623 r#file_format_property = Some({
5624 struct DeserializeWith(Vec<FileFormatProperty>);
5625 impl<'de> Deserialize<'de> for DeserializeWith {
5626 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5627 where
5628 D: Deserializer<'de>,
5629 {
5630 Ok(DeserializeWith(serde_with::As::<
5631 serde_with::OneOrMany<serde_with::Same>,
5632 >::deserialize(deserializer)?))
5633 }
5634 }
5635 match map.next_value::<DeserializeWith>() {
5636 Ok(deserialize_with) => deserialize_with.0,
5637 Err(err) => {
5638 return Err(err);
5639 }
5640 }
5641 });
5642 }
5643 Field::Funder => {
5644 if r#funder_property.is_some() {
5645 return Err(<A::Error as de::Error>::duplicate_field("funder"));
5646 }
5647 r#funder_property = Some({
5648 struct DeserializeWith(Vec<FunderProperty>);
5649 impl<'de> Deserialize<'de> for DeserializeWith {
5650 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5651 where
5652 D: Deserializer<'de>,
5653 {
5654 Ok(DeserializeWith(serde_with::As::<
5655 serde_with::OneOrMany<serde_with::Same>,
5656 >::deserialize(deserializer)?))
5657 }
5658 }
5659 match map.next_value::<DeserializeWith>() {
5660 Ok(deserialize_with) => deserialize_with.0,
5661 Err(err) => {
5662 return Err(err);
5663 }
5664 }
5665 });
5666 }
5667 Field::Funding => {
5668 if r#funding_property.is_some() {
5669 return Err(<A::Error as de::Error>::duplicate_field(
5670 "funding",
5671 ));
5672 }
5673 r#funding_property = Some({
5674 struct DeserializeWith(Vec<FundingProperty>);
5675 impl<'de> Deserialize<'de> for DeserializeWith {
5676 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5677 where
5678 D: Deserializer<'de>,
5679 {
5680 Ok(DeserializeWith(serde_with::As::<
5681 serde_with::OneOrMany<serde_with::Same>,
5682 >::deserialize(deserializer)?))
5683 }
5684 }
5685 match map.next_value::<DeserializeWith>() {
5686 Ok(deserialize_with) => deserialize_with.0,
5687 Err(err) => {
5688 return Err(err);
5689 }
5690 }
5691 });
5692 }
5693 Field::Genre => {
5694 if r#genre_property.is_some() {
5695 return Err(<A::Error as de::Error>::duplicate_field("genre"));
5696 }
5697 r#genre_property = Some({
5698 struct DeserializeWith(Vec<GenreProperty>);
5699 impl<'de> Deserialize<'de> for DeserializeWith {
5700 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5701 where
5702 D: Deserializer<'de>,
5703 {
5704 Ok(DeserializeWith(serde_with::As::<
5705 serde_with::OneOrMany<serde_with::Same>,
5706 >::deserialize(deserializer)?))
5707 }
5708 }
5709 match map.next_value::<DeserializeWith>() {
5710 Ok(deserialize_with) => deserialize_with.0,
5711 Err(err) => {
5712 return Err(err);
5713 }
5714 }
5715 });
5716 }
5717 Field::HasPart => {
5718 if r#has_part_property.is_some() {
5719 return Err(<A::Error as de::Error>::duplicate_field(
5720 "hasPart",
5721 ));
5722 }
5723 r#has_part_property = Some({
5724 struct DeserializeWith(Vec<HasPartProperty>);
5725 impl<'de> Deserialize<'de> for DeserializeWith {
5726 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5727 where
5728 D: Deserializer<'de>,
5729 {
5730 Ok(DeserializeWith(serde_with::As::<
5731 serde_with::OneOrMany<serde_with::Same>,
5732 >::deserialize(deserializer)?))
5733 }
5734 }
5735 match map.next_value::<DeserializeWith>() {
5736 Ok(deserialize_with) => deserialize_with.0,
5737 Err(err) => {
5738 return Err(err);
5739 }
5740 }
5741 });
5742 }
5743 Field::Headline => {
5744 if r#headline_property.is_some() {
5745 return Err(<A::Error as de::Error>::duplicate_field(
5746 "headline",
5747 ));
5748 }
5749 r#headline_property = Some({
5750 struct DeserializeWith(Vec<HeadlineProperty>);
5751 impl<'de> Deserialize<'de> for DeserializeWith {
5752 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5753 where
5754 D: Deserializer<'de>,
5755 {
5756 Ok(DeserializeWith(serde_with::As::<
5757 serde_with::OneOrMany<serde_with::Same>,
5758 >::deserialize(deserializer)?))
5759 }
5760 }
5761 match map.next_value::<DeserializeWith>() {
5762 Ok(deserialize_with) => deserialize_with.0,
5763 Err(err) => {
5764 return Err(err);
5765 }
5766 }
5767 });
5768 }
5769 Field::InLanguage => {
5770 if r#in_language_property.is_some() {
5771 return Err(<A::Error as de::Error>::duplicate_field(
5772 "inLanguage",
5773 ));
5774 }
5775 r#in_language_property = Some({
5776 struct DeserializeWith(Vec<InLanguageProperty>);
5777 impl<'de> Deserialize<'de> for DeserializeWith {
5778 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5779 where
5780 D: Deserializer<'de>,
5781 {
5782 Ok(DeserializeWith(serde_with::As::<
5783 serde_with::OneOrMany<serde_with::Same>,
5784 >::deserialize(deserializer)?))
5785 }
5786 }
5787 match map.next_value::<DeserializeWith>() {
5788 Ok(deserialize_with) => deserialize_with.0,
5789 Err(err) => {
5790 return Err(err);
5791 }
5792 }
5793 });
5794 }
5795 Field::InteractionStatistic => {
5796 if r#interaction_statistic_property.is_some() {
5797 return Err(<A::Error as de::Error>::duplicate_field(
5798 "interactionStatistic",
5799 ));
5800 }
5801 r#interaction_statistic_property = Some({
5802 struct DeserializeWith(Vec<InteractionStatisticProperty>);
5803 impl<'de> Deserialize<'de> for DeserializeWith {
5804 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5805 where
5806 D: Deserializer<'de>,
5807 {
5808 Ok(DeserializeWith(serde_with::As::<
5809 serde_with::OneOrMany<serde_with::Same>,
5810 >::deserialize(deserializer)?))
5811 }
5812 }
5813 match map.next_value::<DeserializeWith>() {
5814 Ok(deserialize_with) => deserialize_with.0,
5815 Err(err) => {
5816 return Err(err);
5817 }
5818 }
5819 });
5820 }
5821 Field::InteractivityType => {
5822 if r#interactivity_type_property.is_some() {
5823 return Err(<A::Error as de::Error>::duplicate_field(
5824 "interactivityType",
5825 ));
5826 }
5827 r#interactivity_type_property = Some({
5828 struct DeserializeWith(Vec<InteractivityTypeProperty>);
5829 impl<'de> Deserialize<'de> for DeserializeWith {
5830 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5831 where
5832 D: Deserializer<'de>,
5833 {
5834 Ok(DeserializeWith(serde_with::As::<
5835 serde_with::OneOrMany<serde_with::Same>,
5836 >::deserialize(deserializer)?))
5837 }
5838 }
5839 match map.next_value::<DeserializeWith>() {
5840 Ok(deserialize_with) => deserialize_with.0,
5841 Err(err) => {
5842 return Err(err);
5843 }
5844 }
5845 });
5846 }
5847 Field::InterpretedAsClaim => {
5848 if r#interpreted_as_claim_property.is_some() {
5849 return Err(<A::Error as de::Error>::duplicate_field(
5850 "interpretedAsClaim",
5851 ));
5852 }
5853 r#interpreted_as_claim_property = Some({
5854 struct DeserializeWith(Vec<InterpretedAsClaimProperty>);
5855 impl<'de> Deserialize<'de> for DeserializeWith {
5856 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5857 where
5858 D: Deserializer<'de>,
5859 {
5860 Ok(DeserializeWith(serde_with::As::<
5861 serde_with::OneOrMany<serde_with::Same>,
5862 >::deserialize(deserializer)?))
5863 }
5864 }
5865 match map.next_value::<DeserializeWith>() {
5866 Ok(deserialize_with) => deserialize_with.0,
5867 Err(err) => {
5868 return Err(err);
5869 }
5870 }
5871 });
5872 }
5873 Field::IsAccessibleForFree => {
5874 if r#is_accessible_for_free_property.is_some() {
5875 return Err(<A::Error as de::Error>::duplicate_field(
5876 "isAccessibleForFree",
5877 ));
5878 }
5879 r#is_accessible_for_free_property = Some({
5880 struct DeserializeWith(Vec<IsAccessibleForFreeProperty>);
5881 impl<'de> Deserialize<'de> for DeserializeWith {
5882 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5883 where
5884 D: Deserializer<'de>,
5885 {
5886 Ok(DeserializeWith(serde_with::As::<
5887 serde_with::OneOrMany<serde_with::Same>,
5888 >::deserialize(deserializer)?))
5889 }
5890 }
5891 match map.next_value::<DeserializeWith>() {
5892 Ok(deserialize_with) => deserialize_with.0,
5893 Err(err) => {
5894 return Err(err);
5895 }
5896 }
5897 });
5898 }
5899 Field::IsBasedOn => {
5900 if r#is_based_on_property.is_some() {
5901 return Err(<A::Error as de::Error>::duplicate_field(
5902 "isBasedOn",
5903 ));
5904 }
5905 r#is_based_on_property = Some({
5906 struct DeserializeWith(Vec<IsBasedOnProperty>);
5907 impl<'de> Deserialize<'de> for DeserializeWith {
5908 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5909 where
5910 D: Deserializer<'de>,
5911 {
5912 Ok(DeserializeWith(serde_with::As::<
5913 serde_with::OneOrMany<serde_with::Same>,
5914 >::deserialize(deserializer)?))
5915 }
5916 }
5917 match map.next_value::<DeserializeWith>() {
5918 Ok(deserialize_with) => deserialize_with.0,
5919 Err(err) => {
5920 return Err(err);
5921 }
5922 }
5923 });
5924 }
5925 Field::IsBasedOnUrl => {
5926 if r#is_based_on_url_property.is_some() {
5927 return Err(<A::Error as de::Error>::duplicate_field(
5928 "isBasedOnUrl",
5929 ));
5930 }
5931 r#is_based_on_url_property = Some({
5932 struct DeserializeWith(Vec<IsBasedOnUrlProperty>);
5933 impl<'de> Deserialize<'de> for DeserializeWith {
5934 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5935 where
5936 D: Deserializer<'de>,
5937 {
5938 Ok(DeserializeWith(serde_with::As::<
5939 serde_with::OneOrMany<serde_with::Same>,
5940 >::deserialize(deserializer)?))
5941 }
5942 }
5943 match map.next_value::<DeserializeWith>() {
5944 Ok(deserialize_with) => deserialize_with.0,
5945 Err(err) => {
5946 return Err(err);
5947 }
5948 }
5949 });
5950 }
5951 Field::IsFamilyFriendly => {
5952 if r#is_family_friendly_property.is_some() {
5953 return Err(<A::Error as de::Error>::duplicate_field(
5954 "isFamilyFriendly",
5955 ));
5956 }
5957 r#is_family_friendly_property = Some({
5958 struct DeserializeWith(Vec<IsFamilyFriendlyProperty>);
5959 impl<'de> Deserialize<'de> for DeserializeWith {
5960 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5961 where
5962 D: Deserializer<'de>,
5963 {
5964 Ok(DeserializeWith(serde_with::As::<
5965 serde_with::OneOrMany<serde_with::Same>,
5966 >::deserialize(deserializer)?))
5967 }
5968 }
5969 match map.next_value::<DeserializeWith>() {
5970 Ok(deserialize_with) => deserialize_with.0,
5971 Err(err) => {
5972 return Err(err);
5973 }
5974 }
5975 });
5976 }
5977 Field::IsPartOf => {
5978 if r#is_part_of_property.is_some() {
5979 return Err(<A::Error as de::Error>::duplicate_field(
5980 "isPartOf",
5981 ));
5982 }
5983 r#is_part_of_property = Some({
5984 struct DeserializeWith(Vec<IsPartOfProperty>);
5985 impl<'de> Deserialize<'de> for DeserializeWith {
5986 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5987 where
5988 D: Deserializer<'de>,
5989 {
5990 Ok(DeserializeWith(serde_with::As::<
5991 serde_with::OneOrMany<serde_with::Same>,
5992 >::deserialize(deserializer)?))
5993 }
5994 }
5995 match map.next_value::<DeserializeWith>() {
5996 Ok(deserialize_with) => deserialize_with.0,
5997 Err(err) => {
5998 return Err(err);
5999 }
6000 }
6001 });
6002 }
6003 Field::Keywords => {
6004 if r#keywords_property.is_some() {
6005 return Err(<A::Error as de::Error>::duplicate_field(
6006 "keywords",
6007 ));
6008 }
6009 r#keywords_property = Some({
6010 struct DeserializeWith(Vec<KeywordsProperty>);
6011 impl<'de> Deserialize<'de> for DeserializeWith {
6012 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6013 where
6014 D: Deserializer<'de>,
6015 {
6016 Ok(DeserializeWith(serde_with::As::<
6017 serde_with::OneOrMany<serde_with::Same>,
6018 >::deserialize(deserializer)?))
6019 }
6020 }
6021 match map.next_value::<DeserializeWith>() {
6022 Ok(deserialize_with) => deserialize_with.0,
6023 Err(err) => {
6024 return Err(err);
6025 }
6026 }
6027 });
6028 }
6029 Field::LearningResourceType => {
6030 if r#learning_resource_type_property.is_some() {
6031 return Err(<A::Error as de::Error>::duplicate_field(
6032 "learningResourceType",
6033 ));
6034 }
6035 r#learning_resource_type_property = Some({
6036 struct DeserializeWith(Vec<LearningResourceTypeProperty>);
6037 impl<'de> Deserialize<'de> for DeserializeWith {
6038 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6039 where
6040 D: Deserializer<'de>,
6041 {
6042 Ok(DeserializeWith(serde_with::As::<
6043 serde_with::OneOrMany<serde_with::Same>,
6044 >::deserialize(deserializer)?))
6045 }
6046 }
6047 match map.next_value::<DeserializeWith>() {
6048 Ok(deserialize_with) => deserialize_with.0,
6049 Err(err) => {
6050 return Err(err);
6051 }
6052 }
6053 });
6054 }
6055 Field::License => {
6056 if r#license_property.is_some() {
6057 return Err(<A::Error as de::Error>::duplicate_field(
6058 "license",
6059 ));
6060 }
6061 r#license_property = Some({
6062 struct DeserializeWith(Vec<LicenseProperty>);
6063 impl<'de> Deserialize<'de> for DeserializeWith {
6064 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6065 where
6066 D: Deserializer<'de>,
6067 {
6068 Ok(DeserializeWith(serde_with::As::<
6069 serde_with::OneOrMany<serde_with::Same>,
6070 >::deserialize(deserializer)?))
6071 }
6072 }
6073 match map.next_value::<DeserializeWith>() {
6074 Ok(deserialize_with) => deserialize_with.0,
6075 Err(err) => {
6076 return Err(err);
6077 }
6078 }
6079 });
6080 }
6081 Field::LocationCreated => {
6082 if r#location_created_property.is_some() {
6083 return Err(<A::Error as de::Error>::duplicate_field(
6084 "locationCreated",
6085 ));
6086 }
6087 r#location_created_property = Some({
6088 struct DeserializeWith(Vec<LocationCreatedProperty>);
6089 impl<'de> Deserialize<'de> for DeserializeWith {
6090 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6091 where
6092 D: Deserializer<'de>,
6093 {
6094 Ok(DeserializeWith(serde_with::As::<
6095 serde_with::OneOrMany<serde_with::Same>,
6096 >::deserialize(deserializer)?))
6097 }
6098 }
6099 match map.next_value::<DeserializeWith>() {
6100 Ok(deserialize_with) => deserialize_with.0,
6101 Err(err) => {
6102 return Err(err);
6103 }
6104 }
6105 });
6106 }
6107 Field::MainEntity => {
6108 if r#main_entity_property.is_some() {
6109 return Err(<A::Error as de::Error>::duplicate_field(
6110 "mainEntity",
6111 ));
6112 }
6113 r#main_entity_property = Some({
6114 struct DeserializeWith(Vec<MainEntityProperty>);
6115 impl<'de> Deserialize<'de> for DeserializeWith {
6116 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6117 where
6118 D: Deserializer<'de>,
6119 {
6120 Ok(DeserializeWith(serde_with::As::<
6121 serde_with::OneOrMany<serde_with::Same>,
6122 >::deserialize(deserializer)?))
6123 }
6124 }
6125 match map.next_value::<DeserializeWith>() {
6126 Ok(deserialize_with) => deserialize_with.0,
6127 Err(err) => {
6128 return Err(err);
6129 }
6130 }
6131 });
6132 }
6133 Field::Maintainer => {
6134 if r#maintainer_property.is_some() {
6135 return Err(<A::Error as de::Error>::duplicate_field(
6136 "maintainer",
6137 ));
6138 }
6139 r#maintainer_property = Some({
6140 struct DeserializeWith(Vec<MaintainerProperty>);
6141 impl<'de> Deserialize<'de> for DeserializeWith {
6142 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6143 where
6144 D: Deserializer<'de>,
6145 {
6146 Ok(DeserializeWith(serde_with::As::<
6147 serde_with::OneOrMany<serde_with::Same>,
6148 >::deserialize(deserializer)?))
6149 }
6150 }
6151 match map.next_value::<DeserializeWith>() {
6152 Ok(deserialize_with) => deserialize_with.0,
6153 Err(err) => {
6154 return Err(err);
6155 }
6156 }
6157 });
6158 }
6159 Field::Material => {
6160 if r#material_property.is_some() {
6161 return Err(<A::Error as de::Error>::duplicate_field(
6162 "material",
6163 ));
6164 }
6165 r#material_property = Some({
6166 struct DeserializeWith(Vec<MaterialProperty>);
6167 impl<'de> Deserialize<'de> for DeserializeWith {
6168 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6169 where
6170 D: Deserializer<'de>,
6171 {
6172 Ok(DeserializeWith(serde_with::As::<
6173 serde_with::OneOrMany<serde_with::Same>,
6174 >::deserialize(deserializer)?))
6175 }
6176 }
6177 match map.next_value::<DeserializeWith>() {
6178 Ok(deserialize_with) => deserialize_with.0,
6179 Err(err) => {
6180 return Err(err);
6181 }
6182 }
6183 });
6184 }
6185 Field::MaterialExtent => {
6186 if r#material_extent_property.is_some() {
6187 return Err(<A::Error as de::Error>::duplicate_field(
6188 "materialExtent",
6189 ));
6190 }
6191 r#material_extent_property = Some({
6192 struct DeserializeWith(Vec<MaterialExtentProperty>);
6193 impl<'de> Deserialize<'de> for DeserializeWith {
6194 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6195 where
6196 D: Deserializer<'de>,
6197 {
6198 Ok(DeserializeWith(serde_with::As::<
6199 serde_with::OneOrMany<serde_with::Same>,
6200 >::deserialize(deserializer)?))
6201 }
6202 }
6203 match map.next_value::<DeserializeWith>() {
6204 Ok(deserialize_with) => deserialize_with.0,
6205 Err(err) => {
6206 return Err(err);
6207 }
6208 }
6209 });
6210 }
6211 Field::Mentions => {
6212 if r#mentions_property.is_some() {
6213 return Err(<A::Error as de::Error>::duplicate_field(
6214 "mentions",
6215 ));
6216 }
6217 r#mentions_property = Some({
6218 struct DeserializeWith(Vec<MentionsProperty>);
6219 impl<'de> Deserialize<'de> for DeserializeWith {
6220 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6221 where
6222 D: Deserializer<'de>,
6223 {
6224 Ok(DeserializeWith(serde_with::As::<
6225 serde_with::OneOrMany<serde_with::Same>,
6226 >::deserialize(deserializer)?))
6227 }
6228 }
6229 match map.next_value::<DeserializeWith>() {
6230 Ok(deserialize_with) => deserialize_with.0,
6231 Err(err) => {
6232 return Err(err);
6233 }
6234 }
6235 });
6236 }
6237 Field::Offers => {
6238 if r#offers_property.is_some() {
6239 return Err(<A::Error as de::Error>::duplicate_field("offers"));
6240 }
6241 r#offers_property = Some({
6242 struct DeserializeWith(Vec<OffersProperty>);
6243 impl<'de> Deserialize<'de> for DeserializeWith {
6244 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6245 where
6246 D: Deserializer<'de>,
6247 {
6248 Ok(DeserializeWith(serde_with::As::<
6249 serde_with::OneOrMany<serde_with::Same>,
6250 >::deserialize(deserializer)?))
6251 }
6252 }
6253 match map.next_value::<DeserializeWith>() {
6254 Ok(deserialize_with) => deserialize_with.0,
6255 Err(err) => {
6256 return Err(err);
6257 }
6258 }
6259 });
6260 }
6261 Field::Pattern => {
6262 if r#pattern_property.is_some() {
6263 return Err(<A::Error as de::Error>::duplicate_field(
6264 "pattern",
6265 ));
6266 }
6267 r#pattern_property = Some({
6268 struct DeserializeWith(Vec<PatternProperty>);
6269 impl<'de> Deserialize<'de> for DeserializeWith {
6270 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6271 where
6272 D: Deserializer<'de>,
6273 {
6274 Ok(DeserializeWith(serde_with::As::<
6275 serde_with::OneOrMany<serde_with::Same>,
6276 >::deserialize(deserializer)?))
6277 }
6278 }
6279 match map.next_value::<DeserializeWith>() {
6280 Ok(deserialize_with) => deserialize_with.0,
6281 Err(err) => {
6282 return Err(err);
6283 }
6284 }
6285 });
6286 }
6287 Field::Position => {
6288 if r#position_property.is_some() {
6289 return Err(<A::Error as de::Error>::duplicate_field(
6290 "position",
6291 ));
6292 }
6293 r#position_property = Some({
6294 struct DeserializeWith(Vec<PositionProperty>);
6295 impl<'de> Deserialize<'de> for DeserializeWith {
6296 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6297 where
6298 D: Deserializer<'de>,
6299 {
6300 Ok(DeserializeWith(serde_with::As::<
6301 serde_with::OneOrMany<serde_with::Same>,
6302 >::deserialize(deserializer)?))
6303 }
6304 }
6305 match map.next_value::<DeserializeWith>() {
6306 Ok(deserialize_with) => deserialize_with.0,
6307 Err(err) => {
6308 return Err(err);
6309 }
6310 }
6311 });
6312 }
6313 Field::Producer => {
6314 if r#producer_property.is_some() {
6315 return Err(<A::Error as de::Error>::duplicate_field(
6316 "producer",
6317 ));
6318 }
6319 r#producer_property = Some({
6320 struct DeserializeWith(Vec<ProducerProperty>);
6321 impl<'de> Deserialize<'de> for DeserializeWith {
6322 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6323 where
6324 D: Deserializer<'de>,
6325 {
6326 Ok(DeserializeWith(serde_with::As::<
6327 serde_with::OneOrMany<serde_with::Same>,
6328 >::deserialize(deserializer)?))
6329 }
6330 }
6331 match map.next_value::<DeserializeWith>() {
6332 Ok(deserialize_with) => deserialize_with.0,
6333 Err(err) => {
6334 return Err(err);
6335 }
6336 }
6337 });
6338 }
6339 Field::Provider => {
6340 if r#provider_property.is_some() {
6341 return Err(<A::Error as de::Error>::duplicate_field(
6342 "provider",
6343 ));
6344 }
6345 r#provider_property = Some({
6346 struct DeserializeWith(Vec<ProviderProperty>);
6347 impl<'de> Deserialize<'de> for DeserializeWith {
6348 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6349 where
6350 D: Deserializer<'de>,
6351 {
6352 Ok(DeserializeWith(serde_with::As::<
6353 serde_with::OneOrMany<serde_with::Same>,
6354 >::deserialize(deserializer)?))
6355 }
6356 }
6357 match map.next_value::<DeserializeWith>() {
6358 Ok(deserialize_with) => deserialize_with.0,
6359 Err(err) => {
6360 return Err(err);
6361 }
6362 }
6363 });
6364 }
6365 Field::Publication => {
6366 if r#publication_property.is_some() {
6367 return Err(<A::Error as de::Error>::duplicate_field(
6368 "publication",
6369 ));
6370 }
6371 r#publication_property = Some({
6372 struct DeserializeWith(Vec<PublicationProperty>);
6373 impl<'de> Deserialize<'de> for DeserializeWith {
6374 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6375 where
6376 D: Deserializer<'de>,
6377 {
6378 Ok(DeserializeWith(serde_with::As::<
6379 serde_with::OneOrMany<serde_with::Same>,
6380 >::deserialize(deserializer)?))
6381 }
6382 }
6383 match map.next_value::<DeserializeWith>() {
6384 Ok(deserialize_with) => deserialize_with.0,
6385 Err(err) => {
6386 return Err(err);
6387 }
6388 }
6389 });
6390 }
6391 Field::Publisher => {
6392 if r#publisher_property.is_some() {
6393 return Err(<A::Error as de::Error>::duplicate_field(
6394 "publisher",
6395 ));
6396 }
6397 r#publisher_property = Some({
6398 struct DeserializeWith(Vec<PublisherProperty>);
6399 impl<'de> Deserialize<'de> for DeserializeWith {
6400 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6401 where
6402 D: Deserializer<'de>,
6403 {
6404 Ok(DeserializeWith(serde_with::As::<
6405 serde_with::OneOrMany<serde_with::Same>,
6406 >::deserialize(deserializer)?))
6407 }
6408 }
6409 match map.next_value::<DeserializeWith>() {
6410 Ok(deserialize_with) => deserialize_with.0,
6411 Err(err) => {
6412 return Err(err);
6413 }
6414 }
6415 });
6416 }
6417 Field::PublisherImprint => {
6418 if r#publisher_imprint_property.is_some() {
6419 return Err(<A::Error as de::Error>::duplicate_field(
6420 "publisherImprint",
6421 ));
6422 }
6423 r#publisher_imprint_property = Some({
6424 struct DeserializeWith(Vec<PublisherImprintProperty>);
6425 impl<'de> Deserialize<'de> for DeserializeWith {
6426 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6427 where
6428 D: Deserializer<'de>,
6429 {
6430 Ok(DeserializeWith(serde_with::As::<
6431 serde_with::OneOrMany<serde_with::Same>,
6432 >::deserialize(deserializer)?))
6433 }
6434 }
6435 match map.next_value::<DeserializeWith>() {
6436 Ok(deserialize_with) => deserialize_with.0,
6437 Err(err) => {
6438 return Err(err);
6439 }
6440 }
6441 });
6442 }
6443 Field::PublishingPrinciples => {
6444 if r#publishing_principles_property.is_some() {
6445 return Err(<A::Error as de::Error>::duplicate_field(
6446 "publishingPrinciples",
6447 ));
6448 }
6449 r#publishing_principles_property = Some({
6450 struct DeserializeWith(Vec<PublishingPrinciplesProperty>);
6451 impl<'de> Deserialize<'de> for DeserializeWith {
6452 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6453 where
6454 D: Deserializer<'de>,
6455 {
6456 Ok(DeserializeWith(serde_with::As::<
6457 serde_with::OneOrMany<serde_with::Same>,
6458 >::deserialize(deserializer)?))
6459 }
6460 }
6461 match map.next_value::<DeserializeWith>() {
6462 Ok(deserialize_with) => deserialize_with.0,
6463 Err(err) => {
6464 return Err(err);
6465 }
6466 }
6467 });
6468 }
6469 Field::RecordedAt => {
6470 if r#recorded_at_property.is_some() {
6471 return Err(<A::Error as de::Error>::duplicate_field(
6472 "recordedAt",
6473 ));
6474 }
6475 r#recorded_at_property = Some({
6476 struct DeserializeWith(Vec<RecordedAtProperty>);
6477 impl<'de> Deserialize<'de> for DeserializeWith {
6478 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6479 where
6480 D: Deserializer<'de>,
6481 {
6482 Ok(DeserializeWith(serde_with::As::<
6483 serde_with::OneOrMany<serde_with::Same>,
6484 >::deserialize(deserializer)?))
6485 }
6486 }
6487 match map.next_value::<DeserializeWith>() {
6488 Ok(deserialize_with) => deserialize_with.0,
6489 Err(err) => {
6490 return Err(err);
6491 }
6492 }
6493 });
6494 }
6495 Field::ReleasedEvent => {
6496 if r#released_event_property.is_some() {
6497 return Err(<A::Error as de::Error>::duplicate_field(
6498 "releasedEvent",
6499 ));
6500 }
6501 r#released_event_property = Some({
6502 struct DeserializeWith(Vec<ReleasedEventProperty>);
6503 impl<'de> Deserialize<'de> for DeserializeWith {
6504 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6505 where
6506 D: Deserializer<'de>,
6507 {
6508 Ok(DeserializeWith(serde_with::As::<
6509 serde_with::OneOrMany<serde_with::Same>,
6510 >::deserialize(deserializer)?))
6511 }
6512 }
6513 match map.next_value::<DeserializeWith>() {
6514 Ok(deserialize_with) => deserialize_with.0,
6515 Err(err) => {
6516 return Err(err);
6517 }
6518 }
6519 });
6520 }
6521 Field::Review => {
6522 if r#review_property.is_some() {
6523 return Err(<A::Error as de::Error>::duplicate_field("review"));
6524 }
6525 r#review_property = Some({
6526 struct DeserializeWith(Vec<ReviewProperty>);
6527 impl<'de> Deserialize<'de> for DeserializeWith {
6528 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6529 where
6530 D: Deserializer<'de>,
6531 {
6532 Ok(DeserializeWith(serde_with::As::<
6533 serde_with::OneOrMany<serde_with::Same>,
6534 >::deserialize(deserializer)?))
6535 }
6536 }
6537 match map.next_value::<DeserializeWith>() {
6538 Ok(deserialize_with) => deserialize_with.0,
6539 Err(err) => {
6540 return Err(err);
6541 }
6542 }
6543 });
6544 }
6545 Field::Reviews => {
6546 if r#reviews_property.is_some() {
6547 return Err(<A::Error as de::Error>::duplicate_field(
6548 "reviews",
6549 ));
6550 }
6551 r#reviews_property = Some({
6552 struct DeserializeWith(Vec<ReviewsProperty>);
6553 impl<'de> Deserialize<'de> for DeserializeWith {
6554 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6555 where
6556 D: Deserializer<'de>,
6557 {
6558 Ok(DeserializeWith(serde_with::As::<
6559 serde_with::OneOrMany<serde_with::Same>,
6560 >::deserialize(deserializer)?))
6561 }
6562 }
6563 match map.next_value::<DeserializeWith>() {
6564 Ok(deserialize_with) => deserialize_with.0,
6565 Err(err) => {
6566 return Err(err);
6567 }
6568 }
6569 });
6570 }
6571 Field::SchemaVersion => {
6572 if r#schema_version_property.is_some() {
6573 return Err(<A::Error as de::Error>::duplicate_field(
6574 "schemaVersion",
6575 ));
6576 }
6577 r#schema_version_property = Some({
6578 struct DeserializeWith(Vec<SchemaVersionProperty>);
6579 impl<'de> Deserialize<'de> for DeserializeWith {
6580 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6581 where
6582 D: Deserializer<'de>,
6583 {
6584 Ok(DeserializeWith(serde_with::As::<
6585 serde_with::OneOrMany<serde_with::Same>,
6586 >::deserialize(deserializer)?))
6587 }
6588 }
6589 match map.next_value::<DeserializeWith>() {
6590 Ok(deserialize_with) => deserialize_with.0,
6591 Err(err) => {
6592 return Err(err);
6593 }
6594 }
6595 });
6596 }
6597 Field::SdDatePublished => {
6598 if r#sd_date_published_property.is_some() {
6599 return Err(<A::Error as de::Error>::duplicate_field(
6600 "sdDatePublished",
6601 ));
6602 }
6603 r#sd_date_published_property = Some({
6604 struct DeserializeWith(Vec<SdDatePublishedProperty>);
6605 impl<'de> Deserialize<'de> for DeserializeWith {
6606 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6607 where
6608 D: Deserializer<'de>,
6609 {
6610 Ok(DeserializeWith(serde_with::As::<
6611 serde_with::OneOrMany<serde_with::Same>,
6612 >::deserialize(deserializer)?))
6613 }
6614 }
6615 match map.next_value::<DeserializeWith>() {
6616 Ok(deserialize_with) => deserialize_with.0,
6617 Err(err) => {
6618 return Err(err);
6619 }
6620 }
6621 });
6622 }
6623 Field::SdLicense => {
6624 if r#sd_license_property.is_some() {
6625 return Err(<A::Error as de::Error>::duplicate_field(
6626 "sdLicense",
6627 ));
6628 }
6629 r#sd_license_property = Some({
6630 struct DeserializeWith(Vec<SdLicenseProperty>);
6631 impl<'de> Deserialize<'de> for DeserializeWith {
6632 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6633 where
6634 D: Deserializer<'de>,
6635 {
6636 Ok(DeserializeWith(serde_with::As::<
6637 serde_with::OneOrMany<serde_with::Same>,
6638 >::deserialize(deserializer)?))
6639 }
6640 }
6641 match map.next_value::<DeserializeWith>() {
6642 Ok(deserialize_with) => deserialize_with.0,
6643 Err(err) => {
6644 return Err(err);
6645 }
6646 }
6647 });
6648 }
6649 Field::SdPublisher => {
6650 if r#sd_publisher_property.is_some() {
6651 return Err(<A::Error as de::Error>::duplicate_field(
6652 "sdPublisher",
6653 ));
6654 }
6655 r#sd_publisher_property = Some({
6656 struct DeserializeWith(Vec<SdPublisherProperty>);
6657 impl<'de> Deserialize<'de> for DeserializeWith {
6658 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6659 where
6660 D: Deserializer<'de>,
6661 {
6662 Ok(DeserializeWith(serde_with::As::<
6663 serde_with::OneOrMany<serde_with::Same>,
6664 >::deserialize(deserializer)?))
6665 }
6666 }
6667 match map.next_value::<DeserializeWith>() {
6668 Ok(deserialize_with) => deserialize_with.0,
6669 Err(err) => {
6670 return Err(err);
6671 }
6672 }
6673 });
6674 }
6675 Field::Size => {
6676 if r#size_property.is_some() {
6677 return Err(<A::Error as de::Error>::duplicate_field("size"));
6678 }
6679 r#size_property = Some({
6680 struct DeserializeWith(Vec<SizeProperty>);
6681 impl<'de> Deserialize<'de> for DeserializeWith {
6682 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6683 where
6684 D: Deserializer<'de>,
6685 {
6686 Ok(DeserializeWith(serde_with::As::<
6687 serde_with::OneOrMany<serde_with::Same>,
6688 >::deserialize(deserializer)?))
6689 }
6690 }
6691 match map.next_value::<DeserializeWith>() {
6692 Ok(deserialize_with) => deserialize_with.0,
6693 Err(err) => {
6694 return Err(err);
6695 }
6696 }
6697 });
6698 }
6699 Field::SourceOrganization => {
6700 if r#source_organization_property.is_some() {
6701 return Err(<A::Error as de::Error>::duplicate_field(
6702 "sourceOrganization",
6703 ));
6704 }
6705 r#source_organization_property = Some({
6706 struct DeserializeWith(Vec<SourceOrganizationProperty>);
6707 impl<'de> Deserialize<'de> for DeserializeWith {
6708 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6709 where
6710 D: Deserializer<'de>,
6711 {
6712 Ok(DeserializeWith(serde_with::As::<
6713 serde_with::OneOrMany<serde_with::Same>,
6714 >::deserialize(deserializer)?))
6715 }
6716 }
6717 match map.next_value::<DeserializeWith>() {
6718 Ok(deserialize_with) => deserialize_with.0,
6719 Err(err) => {
6720 return Err(err);
6721 }
6722 }
6723 });
6724 }
6725 Field::Spatial => {
6726 if r#spatial_property.is_some() {
6727 return Err(<A::Error as de::Error>::duplicate_field(
6728 "spatial",
6729 ));
6730 }
6731 r#spatial_property = Some({
6732 struct DeserializeWith(Vec<SpatialProperty>);
6733 impl<'de> Deserialize<'de> for DeserializeWith {
6734 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6735 where
6736 D: Deserializer<'de>,
6737 {
6738 Ok(DeserializeWith(serde_with::As::<
6739 serde_with::OneOrMany<serde_with::Same>,
6740 >::deserialize(deserializer)?))
6741 }
6742 }
6743 match map.next_value::<DeserializeWith>() {
6744 Ok(deserialize_with) => deserialize_with.0,
6745 Err(err) => {
6746 return Err(err);
6747 }
6748 }
6749 });
6750 }
6751 Field::SpatialCoverage => {
6752 if r#spatial_coverage_property.is_some() {
6753 return Err(<A::Error as de::Error>::duplicate_field(
6754 "spatialCoverage",
6755 ));
6756 }
6757 r#spatial_coverage_property = Some({
6758 struct DeserializeWith(Vec<SpatialCoverageProperty>);
6759 impl<'de> Deserialize<'de> for DeserializeWith {
6760 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6761 where
6762 D: Deserializer<'de>,
6763 {
6764 Ok(DeserializeWith(serde_with::As::<
6765 serde_with::OneOrMany<serde_with::Same>,
6766 >::deserialize(deserializer)?))
6767 }
6768 }
6769 match map.next_value::<DeserializeWith>() {
6770 Ok(deserialize_with) => deserialize_with.0,
6771 Err(err) => {
6772 return Err(err);
6773 }
6774 }
6775 });
6776 }
6777 Field::Sponsor => {
6778 if r#sponsor_property.is_some() {
6779 return Err(<A::Error as de::Error>::duplicate_field(
6780 "sponsor",
6781 ));
6782 }
6783 r#sponsor_property = Some({
6784 struct DeserializeWith(Vec<SponsorProperty>);
6785 impl<'de> Deserialize<'de> for DeserializeWith {
6786 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6787 where
6788 D: Deserializer<'de>,
6789 {
6790 Ok(DeserializeWith(serde_with::As::<
6791 serde_with::OneOrMany<serde_with::Same>,
6792 >::deserialize(deserializer)?))
6793 }
6794 }
6795 match map.next_value::<DeserializeWith>() {
6796 Ok(deserialize_with) => deserialize_with.0,
6797 Err(err) => {
6798 return Err(err);
6799 }
6800 }
6801 });
6802 }
6803 Field::Teaches => {
6804 if r#teaches_property.is_some() {
6805 return Err(<A::Error as de::Error>::duplicate_field(
6806 "teaches",
6807 ));
6808 }
6809 r#teaches_property = Some({
6810 struct DeserializeWith(Vec<TeachesProperty>);
6811 impl<'de> Deserialize<'de> for DeserializeWith {
6812 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6813 where
6814 D: Deserializer<'de>,
6815 {
6816 Ok(DeserializeWith(serde_with::As::<
6817 serde_with::OneOrMany<serde_with::Same>,
6818 >::deserialize(deserializer)?))
6819 }
6820 }
6821 match map.next_value::<DeserializeWith>() {
6822 Ok(deserialize_with) => deserialize_with.0,
6823 Err(err) => {
6824 return Err(err);
6825 }
6826 }
6827 });
6828 }
6829 Field::Temporal => {
6830 if r#temporal_property.is_some() {
6831 return Err(<A::Error as de::Error>::duplicate_field(
6832 "temporal",
6833 ));
6834 }
6835 r#temporal_property = Some({
6836 struct DeserializeWith(Vec<TemporalProperty>);
6837 impl<'de> Deserialize<'de> for DeserializeWith {
6838 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6839 where
6840 D: Deserializer<'de>,
6841 {
6842 Ok(DeserializeWith(serde_with::As::<
6843 serde_with::OneOrMany<serde_with::Same>,
6844 >::deserialize(deserializer)?))
6845 }
6846 }
6847 match map.next_value::<DeserializeWith>() {
6848 Ok(deserialize_with) => deserialize_with.0,
6849 Err(err) => {
6850 return Err(err);
6851 }
6852 }
6853 });
6854 }
6855 Field::TemporalCoverage => {
6856 if r#temporal_coverage_property.is_some() {
6857 return Err(<A::Error as de::Error>::duplicate_field(
6858 "temporalCoverage",
6859 ));
6860 }
6861 r#temporal_coverage_property = Some({
6862 struct DeserializeWith(Vec<TemporalCoverageProperty>);
6863 impl<'de> Deserialize<'de> for DeserializeWith {
6864 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6865 where
6866 D: Deserializer<'de>,
6867 {
6868 Ok(DeserializeWith(serde_with::As::<
6869 serde_with::OneOrMany<serde_with::Same>,
6870 >::deserialize(deserializer)?))
6871 }
6872 }
6873 match map.next_value::<DeserializeWith>() {
6874 Ok(deserialize_with) => deserialize_with.0,
6875 Err(err) => {
6876 return Err(err);
6877 }
6878 }
6879 });
6880 }
6881 Field::Text => {
6882 if r#text_property.is_some() {
6883 return Err(<A::Error as de::Error>::duplicate_field("text"));
6884 }
6885 r#text_property = Some({
6886 struct DeserializeWith(Vec<TextProperty>);
6887 impl<'de> Deserialize<'de> for DeserializeWith {
6888 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6889 where
6890 D: Deserializer<'de>,
6891 {
6892 Ok(DeserializeWith(serde_with::As::<
6893 serde_with::OneOrMany<serde_with::Same>,
6894 >::deserialize(deserializer)?))
6895 }
6896 }
6897 match map.next_value::<DeserializeWith>() {
6898 Ok(deserialize_with) => deserialize_with.0,
6899 Err(err) => {
6900 return Err(err);
6901 }
6902 }
6903 });
6904 }
6905 Field::Thumbnail => {
6906 if r#thumbnail_property.is_some() {
6907 return Err(<A::Error as de::Error>::duplicate_field(
6908 "thumbnail",
6909 ));
6910 }
6911 r#thumbnail_property = Some({
6912 struct DeserializeWith(Vec<ThumbnailProperty>);
6913 impl<'de> Deserialize<'de> for DeserializeWith {
6914 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6915 where
6916 D: Deserializer<'de>,
6917 {
6918 Ok(DeserializeWith(serde_with::As::<
6919 serde_with::OneOrMany<serde_with::Same>,
6920 >::deserialize(deserializer)?))
6921 }
6922 }
6923 match map.next_value::<DeserializeWith>() {
6924 Ok(deserialize_with) => deserialize_with.0,
6925 Err(err) => {
6926 return Err(err);
6927 }
6928 }
6929 });
6930 }
6931 Field::ThumbnailUrl => {
6932 if r#thumbnail_url_property.is_some() {
6933 return Err(<A::Error as de::Error>::duplicate_field(
6934 "thumbnailUrl",
6935 ));
6936 }
6937 r#thumbnail_url_property = Some({
6938 struct DeserializeWith(Vec<ThumbnailUrlProperty>);
6939 impl<'de> Deserialize<'de> for DeserializeWith {
6940 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6941 where
6942 D: Deserializer<'de>,
6943 {
6944 Ok(DeserializeWith(serde_with::As::<
6945 serde_with::OneOrMany<serde_with::Same>,
6946 >::deserialize(deserializer)?))
6947 }
6948 }
6949 match map.next_value::<DeserializeWith>() {
6950 Ok(deserialize_with) => deserialize_with.0,
6951 Err(err) => {
6952 return Err(err);
6953 }
6954 }
6955 });
6956 }
6957 Field::TimeRequired => {
6958 if r#time_required_property.is_some() {
6959 return Err(<A::Error as de::Error>::duplicate_field(
6960 "timeRequired",
6961 ));
6962 }
6963 r#time_required_property = Some({
6964 struct DeserializeWith(Vec<TimeRequiredProperty>);
6965 impl<'de> Deserialize<'de> for DeserializeWith {
6966 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6967 where
6968 D: Deserializer<'de>,
6969 {
6970 Ok(DeserializeWith(serde_with::As::<
6971 serde_with::OneOrMany<serde_with::Same>,
6972 >::deserialize(deserializer)?))
6973 }
6974 }
6975 match map.next_value::<DeserializeWith>() {
6976 Ok(deserialize_with) => deserialize_with.0,
6977 Err(err) => {
6978 return Err(err);
6979 }
6980 }
6981 });
6982 }
6983 Field::TranslationOfWork => {
6984 if r#translation_of_work_property.is_some() {
6985 return Err(<A::Error as de::Error>::duplicate_field(
6986 "translationOfWork",
6987 ));
6988 }
6989 r#translation_of_work_property = Some({
6990 struct DeserializeWith(Vec<TranslationOfWorkProperty>);
6991 impl<'de> Deserialize<'de> for DeserializeWith {
6992 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6993 where
6994 D: Deserializer<'de>,
6995 {
6996 Ok(DeserializeWith(serde_with::As::<
6997 serde_with::OneOrMany<serde_with::Same>,
6998 >::deserialize(deserializer)?))
6999 }
7000 }
7001 match map.next_value::<DeserializeWith>() {
7002 Ok(deserialize_with) => deserialize_with.0,
7003 Err(err) => {
7004 return Err(err);
7005 }
7006 }
7007 });
7008 }
7009 Field::Translator => {
7010 if r#translator_property.is_some() {
7011 return Err(<A::Error as de::Error>::duplicate_field(
7012 "translator",
7013 ));
7014 }
7015 r#translator_property = Some({
7016 struct DeserializeWith(Vec<TranslatorProperty>);
7017 impl<'de> Deserialize<'de> for DeserializeWith {
7018 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7019 where
7020 D: Deserializer<'de>,
7021 {
7022 Ok(DeserializeWith(serde_with::As::<
7023 serde_with::OneOrMany<serde_with::Same>,
7024 >::deserialize(deserializer)?))
7025 }
7026 }
7027 match map.next_value::<DeserializeWith>() {
7028 Ok(deserialize_with) => deserialize_with.0,
7029 Err(err) => {
7030 return Err(err);
7031 }
7032 }
7033 });
7034 }
7035 Field::TypicalAgeRange => {
7036 if r#typical_age_range_property.is_some() {
7037 return Err(<A::Error as de::Error>::duplicate_field(
7038 "typicalAgeRange",
7039 ));
7040 }
7041 r#typical_age_range_property = Some({
7042 struct DeserializeWith(Vec<TypicalAgeRangeProperty>);
7043 impl<'de> Deserialize<'de> for DeserializeWith {
7044 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7045 where
7046 D: Deserializer<'de>,
7047 {
7048 Ok(DeserializeWith(serde_with::As::<
7049 serde_with::OneOrMany<serde_with::Same>,
7050 >::deserialize(deserializer)?))
7051 }
7052 }
7053 match map.next_value::<DeserializeWith>() {
7054 Ok(deserialize_with) => deserialize_with.0,
7055 Err(err) => {
7056 return Err(err);
7057 }
7058 }
7059 });
7060 }
7061 Field::UsageInfo => {
7062 if r#usage_info_property.is_some() {
7063 return Err(<A::Error as de::Error>::duplicate_field(
7064 "usageInfo",
7065 ));
7066 }
7067 r#usage_info_property = Some({
7068 struct DeserializeWith(Vec<UsageInfoProperty>);
7069 impl<'de> Deserialize<'de> for DeserializeWith {
7070 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7071 where
7072 D: Deserializer<'de>,
7073 {
7074 Ok(DeserializeWith(serde_with::As::<
7075 serde_with::OneOrMany<serde_with::Same>,
7076 >::deserialize(deserializer)?))
7077 }
7078 }
7079 match map.next_value::<DeserializeWith>() {
7080 Ok(deserialize_with) => deserialize_with.0,
7081 Err(err) => {
7082 return Err(err);
7083 }
7084 }
7085 });
7086 }
7087 Field::Version => {
7088 if r#version_property.is_some() {
7089 return Err(<A::Error as de::Error>::duplicate_field(
7090 "version",
7091 ));
7092 }
7093 r#version_property = Some({
7094 struct DeserializeWith(Vec<VersionProperty>);
7095 impl<'de> Deserialize<'de> for DeserializeWith {
7096 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7097 where
7098 D: Deserializer<'de>,
7099 {
7100 Ok(DeserializeWith(serde_with::As::<
7101 serde_with::OneOrMany<serde_with::Same>,
7102 >::deserialize(deserializer)?))
7103 }
7104 }
7105 match map.next_value::<DeserializeWith>() {
7106 Ok(deserialize_with) => deserialize_with.0,
7107 Err(err) => {
7108 return Err(err);
7109 }
7110 }
7111 });
7112 }
7113 Field::Video => {
7114 if r#video_property.is_some() {
7115 return Err(<A::Error as de::Error>::duplicate_field("video"));
7116 }
7117 r#video_property = Some({
7118 struct DeserializeWith(Vec<VideoProperty>);
7119 impl<'de> Deserialize<'de> for DeserializeWith {
7120 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7121 where
7122 D: Deserializer<'de>,
7123 {
7124 Ok(DeserializeWith(serde_with::As::<
7125 serde_with::OneOrMany<serde_with::Same>,
7126 >::deserialize(deserializer)?))
7127 }
7128 }
7129 match map.next_value::<DeserializeWith>() {
7130 Ok(deserialize_with) => deserialize_with.0,
7131 Err(err) => {
7132 return Err(err);
7133 }
7134 }
7135 });
7136 }
7137 Field::WorkExample => {
7138 if r#work_example_property.is_some() {
7139 return Err(<A::Error as de::Error>::duplicate_field(
7140 "workExample",
7141 ));
7142 }
7143 r#work_example_property = Some({
7144 struct DeserializeWith(Vec<WorkExampleProperty>);
7145 impl<'de> Deserialize<'de> for DeserializeWith {
7146 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7147 where
7148 D: Deserializer<'de>,
7149 {
7150 Ok(DeserializeWith(serde_with::As::<
7151 serde_with::OneOrMany<serde_with::Same>,
7152 >::deserialize(deserializer)?))
7153 }
7154 }
7155 match map.next_value::<DeserializeWith>() {
7156 Ok(deserialize_with) => deserialize_with.0,
7157 Err(err) => {
7158 return Err(err);
7159 }
7160 }
7161 });
7162 }
7163 Field::WorkTranslation => {
7164 if r#work_translation_property.is_some() {
7165 return Err(<A::Error as de::Error>::duplicate_field(
7166 "workTranslation",
7167 ));
7168 }
7169 r#work_translation_property = Some({
7170 struct DeserializeWith(Vec<WorkTranslationProperty>);
7171 impl<'de> Deserialize<'de> for DeserializeWith {
7172 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7173 where
7174 D: Deserializer<'de>,
7175 {
7176 Ok(DeserializeWith(serde_with::As::<
7177 serde_with::OneOrMany<serde_with::Same>,
7178 >::deserialize(deserializer)?))
7179 }
7180 }
7181 match map.next_value::<DeserializeWith>() {
7182 Ok(deserialize_with) => deserialize_with.0,
7183 Err(err) => {
7184 return Err(err);
7185 }
7186 }
7187 });
7188 }
7189 Field::AdditionalType => {
7190 if r#additional_type_property.is_some() {
7191 return Err(<A::Error as de::Error>::duplicate_field(
7192 "additionalType",
7193 ));
7194 }
7195 r#additional_type_property = Some({
7196 struct DeserializeWith(Vec<AdditionalTypeProperty>);
7197 impl<'de> Deserialize<'de> for DeserializeWith {
7198 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7199 where
7200 D: Deserializer<'de>,
7201 {
7202 Ok(DeserializeWith(serde_with::As::<
7203 serde_with::OneOrMany<serde_with::Same>,
7204 >::deserialize(deserializer)?))
7205 }
7206 }
7207 match map.next_value::<DeserializeWith>() {
7208 Ok(deserialize_with) => deserialize_with.0,
7209 Err(err) => {
7210 return Err(err);
7211 }
7212 }
7213 });
7214 }
7215 Field::AlternateName => {
7216 if r#alternate_name_property.is_some() {
7217 return Err(<A::Error as de::Error>::duplicate_field(
7218 "alternateName",
7219 ));
7220 }
7221 r#alternate_name_property = Some({
7222 struct DeserializeWith(Vec<AlternateNameProperty>);
7223 impl<'de> Deserialize<'de> for DeserializeWith {
7224 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7225 where
7226 D: Deserializer<'de>,
7227 {
7228 Ok(DeserializeWith(serde_with::As::<
7229 serde_with::OneOrMany<serde_with::Same>,
7230 >::deserialize(deserializer)?))
7231 }
7232 }
7233 match map.next_value::<DeserializeWith>() {
7234 Ok(deserialize_with) => deserialize_with.0,
7235 Err(err) => {
7236 return Err(err);
7237 }
7238 }
7239 });
7240 }
7241 Field::Description => {
7242 if r#description_property.is_some() {
7243 return Err(<A::Error as de::Error>::duplicate_field(
7244 "description",
7245 ));
7246 }
7247 r#description_property = Some({
7248 struct DeserializeWith(Vec<DescriptionProperty>);
7249 impl<'de> Deserialize<'de> for DeserializeWith {
7250 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7251 where
7252 D: Deserializer<'de>,
7253 {
7254 Ok(DeserializeWith(serde_with::As::<
7255 serde_with::OneOrMany<serde_with::Same>,
7256 >::deserialize(deserializer)?))
7257 }
7258 }
7259 match map.next_value::<DeserializeWith>() {
7260 Ok(deserialize_with) => deserialize_with.0,
7261 Err(err) => {
7262 return Err(err);
7263 }
7264 }
7265 });
7266 }
7267 Field::DisambiguatingDescription => {
7268 if r#disambiguating_description_property.is_some() {
7269 return Err(<A::Error as de::Error>::duplicate_field(
7270 "disambiguatingDescription",
7271 ));
7272 }
7273 r#disambiguating_description_property = Some({
7274 struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
7275 impl<'de> Deserialize<'de> for DeserializeWith {
7276 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7277 where
7278 D: Deserializer<'de>,
7279 {
7280 Ok(DeserializeWith(serde_with::As::<
7281 serde_with::OneOrMany<serde_with::Same>,
7282 >::deserialize(deserializer)?))
7283 }
7284 }
7285 match map.next_value::<DeserializeWith>() {
7286 Ok(deserialize_with) => deserialize_with.0,
7287 Err(err) => {
7288 return Err(err);
7289 }
7290 }
7291 });
7292 }
7293 Field::Identifier => {
7294 if r#identifier_property.is_some() {
7295 return Err(<A::Error as de::Error>::duplicate_field(
7296 "identifier",
7297 ));
7298 }
7299 r#identifier_property = Some({
7300 struct DeserializeWith(Vec<IdentifierProperty>);
7301 impl<'de> Deserialize<'de> for DeserializeWith {
7302 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7303 where
7304 D: Deserializer<'de>,
7305 {
7306 Ok(DeserializeWith(serde_with::As::<
7307 serde_with::OneOrMany<serde_with::Same>,
7308 >::deserialize(deserializer)?))
7309 }
7310 }
7311 match map.next_value::<DeserializeWith>() {
7312 Ok(deserialize_with) => deserialize_with.0,
7313 Err(err) => {
7314 return Err(err);
7315 }
7316 }
7317 });
7318 }
7319 Field::Image => {
7320 if r#image_property.is_some() {
7321 return Err(<A::Error as de::Error>::duplicate_field("image"));
7322 }
7323 r#image_property = Some({
7324 struct DeserializeWith(Vec<ImageProperty>);
7325 impl<'de> Deserialize<'de> for DeserializeWith {
7326 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7327 where
7328 D: Deserializer<'de>,
7329 {
7330 Ok(DeserializeWith(serde_with::As::<
7331 serde_with::OneOrMany<serde_with::Same>,
7332 >::deserialize(deserializer)?))
7333 }
7334 }
7335 match map.next_value::<DeserializeWith>() {
7336 Ok(deserialize_with) => deserialize_with.0,
7337 Err(err) => {
7338 return Err(err);
7339 }
7340 }
7341 });
7342 }
7343 Field::MainEntityOfPage => {
7344 if r#main_entity_of_page_property.is_some() {
7345 return Err(<A::Error as de::Error>::duplicate_field(
7346 "mainEntityOfPage",
7347 ));
7348 }
7349 r#main_entity_of_page_property = Some({
7350 struct DeserializeWith(Vec<MainEntityOfPageProperty>);
7351 impl<'de> Deserialize<'de> for DeserializeWith {
7352 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7353 where
7354 D: Deserializer<'de>,
7355 {
7356 Ok(DeserializeWith(serde_with::As::<
7357 serde_with::OneOrMany<serde_with::Same>,
7358 >::deserialize(deserializer)?))
7359 }
7360 }
7361 match map.next_value::<DeserializeWith>() {
7362 Ok(deserialize_with) => deserialize_with.0,
7363 Err(err) => {
7364 return Err(err);
7365 }
7366 }
7367 });
7368 }
7369 Field::Name => {
7370 if r#name_property.is_some() {
7371 return Err(<A::Error as de::Error>::duplicate_field("name"));
7372 }
7373 r#name_property = Some({
7374 struct DeserializeWith(Vec<NameProperty>);
7375 impl<'de> Deserialize<'de> for DeserializeWith {
7376 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7377 where
7378 D: Deserializer<'de>,
7379 {
7380 Ok(DeserializeWith(serde_with::As::<
7381 serde_with::OneOrMany<serde_with::Same>,
7382 >::deserialize(deserializer)?))
7383 }
7384 }
7385 match map.next_value::<DeserializeWith>() {
7386 Ok(deserialize_with) => deserialize_with.0,
7387 Err(err) => {
7388 return Err(err);
7389 }
7390 }
7391 });
7392 }
7393 Field::PotentialAction => {
7394 if r#potential_action_property.is_some() {
7395 return Err(<A::Error as de::Error>::duplicate_field(
7396 "potentialAction",
7397 ));
7398 }
7399 r#potential_action_property = Some({
7400 struct DeserializeWith(Vec<PotentialActionProperty>);
7401 impl<'de> Deserialize<'de> for DeserializeWith {
7402 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7403 where
7404 D: Deserializer<'de>,
7405 {
7406 Ok(DeserializeWith(serde_with::As::<
7407 serde_with::OneOrMany<serde_with::Same>,
7408 >::deserialize(deserializer)?))
7409 }
7410 }
7411 match map.next_value::<DeserializeWith>() {
7412 Ok(deserialize_with) => deserialize_with.0,
7413 Err(err) => {
7414 return Err(err);
7415 }
7416 }
7417 });
7418 }
7419 Field::SameAs => {
7420 if r#same_as_property.is_some() {
7421 return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
7422 }
7423 r#same_as_property = Some({
7424 struct DeserializeWith(Vec<SameAsProperty>);
7425 impl<'de> Deserialize<'de> for DeserializeWith {
7426 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7427 where
7428 D: Deserializer<'de>,
7429 {
7430 Ok(DeserializeWith(serde_with::As::<
7431 serde_with::OneOrMany<serde_with::Same>,
7432 >::deserialize(deserializer)?))
7433 }
7434 }
7435 match map.next_value::<DeserializeWith>() {
7436 Ok(deserialize_with) => deserialize_with.0,
7437 Err(err) => {
7438 return Err(err);
7439 }
7440 }
7441 });
7442 }
7443 Field::SubjectOf => {
7444 if r#subject_of_property.is_some() {
7445 return Err(<A::Error as de::Error>::duplicate_field(
7446 "subjectOf",
7447 ));
7448 }
7449 r#subject_of_property = Some({
7450 struct DeserializeWith(Vec<SubjectOfProperty>);
7451 impl<'de> Deserialize<'de> for DeserializeWith {
7452 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7453 where
7454 D: Deserializer<'de>,
7455 {
7456 Ok(DeserializeWith(serde_with::As::<
7457 serde_with::OneOrMany<serde_with::Same>,
7458 >::deserialize(deserializer)?))
7459 }
7460 }
7461 match map.next_value::<DeserializeWith>() {
7462 Ok(deserialize_with) => deserialize_with.0,
7463 Err(err) => {
7464 return Err(err);
7465 }
7466 }
7467 });
7468 }
7469 Field::Url => {
7470 if r#url_property.is_some() {
7471 return Err(<A::Error as de::Error>::duplicate_field("url"));
7472 }
7473 r#url_property = Some({
7474 struct DeserializeWith(Vec<UrlProperty>);
7475 impl<'de> Deserialize<'de> for DeserializeWith {
7476 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7477 where
7478 D: Deserializer<'de>,
7479 {
7480 Ok(DeserializeWith(serde_with::As::<
7481 serde_with::OneOrMany<serde_with::Same>,
7482 >::deserialize(deserializer)?))
7483 }
7484 }
7485 match map.next_value::<DeserializeWith>() {
7486 Ok(deserialize_with) => deserialize_with.0,
7487 Err(err) => {
7488 return Err(err);
7489 }
7490 }
7491 });
7492 }
7493 Field::Ignore => {
7494 let _ = map.next_value::<de::IgnoredAny>()?;
7495 }
7496 }
7497 }
7498 Ok(Game {
7499 r#character_attribute: r#character_attribute_property.unwrap_or_default(),
7500 r#game_item: r#game_item_property.unwrap_or_default(),
7501 r#game_location: r#game_location_property.unwrap_or_default(),
7502 r#number_of_players: r#number_of_players_property.unwrap_or_default(),
7503 r#quest: r#quest_property.unwrap_or_default(),
7504 r#about: r#about_property.unwrap_or_default(),
7505 r#abstract: r#abstract_property.unwrap_or_default(),
7506 r#access_mode: r#access_mode_property.unwrap_or_default(),
7507 r#access_mode_sufficient: r#access_mode_sufficient_property
7508 .unwrap_or_default(),
7509 r#accessibility_api: r#accessibility_api_property.unwrap_or_default(),
7510 r#accessibility_control: r#accessibility_control_property
7511 .unwrap_or_default(),
7512 r#accessibility_feature: r#accessibility_feature_property
7513 .unwrap_or_default(),
7514 r#accessibility_hazard: r#accessibility_hazard_property.unwrap_or_default(),
7515 r#accessibility_summary: r#accessibility_summary_property
7516 .unwrap_or_default(),
7517 r#accountable_person: r#accountable_person_property.unwrap_or_default(),
7518 r#acquire_license_page: r#acquire_license_page_property.unwrap_or_default(),
7519 r#aggregate_rating: r#aggregate_rating_property.unwrap_or_default(),
7520 r#alternative_headline: r#alternative_headline_property.unwrap_or_default(),
7521 r#archived_at: r#archived_at_property.unwrap_or_default(),
7522 r#assesses: r#assesses_property.unwrap_or_default(),
7523 r#associated_media: r#associated_media_property.unwrap_or_default(),
7524 r#audience: r#audience_property.unwrap_or_default(),
7525 r#audio: r#audio_property.unwrap_or_default(),
7526 r#author: r#author_property.unwrap_or_default(),
7527 r#award: r#award_property.unwrap_or_default(),
7528 r#awards: r#awards_property.unwrap_or_default(),
7529 r#character: r#character_property.unwrap_or_default(),
7530 r#citation: r#citation_property.unwrap_or_default(),
7531 r#comment: r#comment_property.unwrap_or_default(),
7532 r#comment_count: r#comment_count_property.unwrap_or_default(),
7533 r#conditions_of_access: r#conditions_of_access_property.unwrap_or_default(),
7534 r#content_location: r#content_location_property.unwrap_or_default(),
7535 r#content_rating: r#content_rating_property.unwrap_or_default(),
7536 r#content_reference_time: r#content_reference_time_property
7537 .unwrap_or_default(),
7538 r#contributor: r#contributor_property.unwrap_or_default(),
7539 r#copyright_holder: r#copyright_holder_property.unwrap_or_default(),
7540 r#copyright_notice: r#copyright_notice_property.unwrap_or_default(),
7541 r#copyright_year: r#copyright_year_property.unwrap_or_default(),
7542 r#correction: r#correction_property.unwrap_or_default(),
7543 r#country_of_origin: r#country_of_origin_property.unwrap_or_default(),
7544 r#creative_work_status: r#creative_work_status_property.unwrap_or_default(),
7545 r#creator: r#creator_property.unwrap_or_default(),
7546 r#credit_text: r#credit_text_property.unwrap_or_default(),
7547 r#date_created: r#date_created_property.unwrap_or_default(),
7548 r#date_modified: r#date_modified_property.unwrap_or_default(),
7549 r#date_published: r#date_published_property.unwrap_or_default(),
7550 r#discussion_url: r#discussion_url_property.unwrap_or_default(),
7551 r#edit_eidr: r#edit_eidr_property.unwrap_or_default(),
7552 r#editor: r#editor_property.unwrap_or_default(),
7553 r#educational_alignment: r#educational_alignment_property
7554 .unwrap_or_default(),
7555 r#educational_level: r#educational_level_property.unwrap_or_default(),
7556 r#educational_use: r#educational_use_property.unwrap_or_default(),
7557 r#encoding: r#encoding_property.unwrap_or_default(),
7558 r#encoding_format: r#encoding_format_property.unwrap_or_default(),
7559 r#encodings: r#encodings_property.unwrap_or_default(),
7560 r#example_of_work: r#example_of_work_property.unwrap_or_default(),
7561 r#expires: r#expires_property.unwrap_or_default(),
7562 r#file_format: r#file_format_property.unwrap_or_default(),
7563 r#funder: r#funder_property.unwrap_or_default(),
7564 r#funding: r#funding_property.unwrap_or_default(),
7565 r#genre: r#genre_property.unwrap_or_default(),
7566 r#has_part: r#has_part_property.unwrap_or_default(),
7567 r#headline: r#headline_property.unwrap_or_default(),
7568 r#in_language: r#in_language_property.unwrap_or_default(),
7569 r#interaction_statistic: r#interaction_statistic_property
7570 .unwrap_or_default(),
7571 r#interactivity_type: r#interactivity_type_property.unwrap_or_default(),
7572 r#interpreted_as_claim: r#interpreted_as_claim_property.unwrap_or_default(),
7573 r#is_accessible_for_free: r#is_accessible_for_free_property
7574 .unwrap_or_default(),
7575 r#is_based_on: r#is_based_on_property.unwrap_or_default(),
7576 r#is_based_on_url: r#is_based_on_url_property.unwrap_or_default(),
7577 r#is_family_friendly: r#is_family_friendly_property.unwrap_or_default(),
7578 r#is_part_of: r#is_part_of_property.unwrap_or_default(),
7579 r#keywords: r#keywords_property.unwrap_or_default(),
7580 r#learning_resource_type: r#learning_resource_type_property
7581 .unwrap_or_default(),
7582 r#license: r#license_property.unwrap_or_default(),
7583 r#location_created: r#location_created_property.unwrap_or_default(),
7584 r#main_entity: r#main_entity_property.unwrap_or_default(),
7585 r#maintainer: r#maintainer_property.unwrap_or_default(),
7586 r#material: r#material_property.unwrap_or_default(),
7587 r#material_extent: r#material_extent_property.unwrap_or_default(),
7588 r#mentions: r#mentions_property.unwrap_or_default(),
7589 r#offers: r#offers_property.unwrap_or_default(),
7590 r#pattern: r#pattern_property.unwrap_or_default(),
7591 r#position: r#position_property.unwrap_or_default(),
7592 r#producer: r#producer_property.unwrap_or_default(),
7593 r#provider: r#provider_property.unwrap_or_default(),
7594 r#publication: r#publication_property.unwrap_or_default(),
7595 r#publisher: r#publisher_property.unwrap_or_default(),
7596 r#publisher_imprint: r#publisher_imprint_property.unwrap_or_default(),
7597 r#publishing_principles: r#publishing_principles_property
7598 .unwrap_or_default(),
7599 r#recorded_at: r#recorded_at_property.unwrap_or_default(),
7600 r#released_event: r#released_event_property.unwrap_or_default(),
7601 r#review: r#review_property.unwrap_or_default(),
7602 r#reviews: r#reviews_property.unwrap_or_default(),
7603 r#schema_version: r#schema_version_property.unwrap_or_default(),
7604 r#sd_date_published: r#sd_date_published_property.unwrap_or_default(),
7605 r#sd_license: r#sd_license_property.unwrap_or_default(),
7606 r#sd_publisher: r#sd_publisher_property.unwrap_or_default(),
7607 r#size: r#size_property.unwrap_or_default(),
7608 r#source_organization: r#source_organization_property.unwrap_or_default(),
7609 r#spatial: r#spatial_property.unwrap_or_default(),
7610 r#spatial_coverage: r#spatial_coverage_property.unwrap_or_default(),
7611 r#sponsor: r#sponsor_property.unwrap_or_default(),
7612 r#teaches: r#teaches_property.unwrap_or_default(),
7613 r#temporal: r#temporal_property.unwrap_or_default(),
7614 r#temporal_coverage: r#temporal_coverage_property.unwrap_or_default(),
7615 r#text: r#text_property.unwrap_or_default(),
7616 r#thumbnail: r#thumbnail_property.unwrap_or_default(),
7617 r#thumbnail_url: r#thumbnail_url_property.unwrap_or_default(),
7618 r#time_required: r#time_required_property.unwrap_or_default(),
7619 r#translation_of_work: r#translation_of_work_property.unwrap_or_default(),
7620 r#translator: r#translator_property.unwrap_or_default(),
7621 r#typical_age_range: r#typical_age_range_property.unwrap_or_default(),
7622 r#usage_info: r#usage_info_property.unwrap_or_default(),
7623 r#version: r#version_property.unwrap_or_default(),
7624 r#video: r#video_property.unwrap_or_default(),
7625 r#work_example: r#work_example_property.unwrap_or_default(),
7626 r#work_translation: r#work_translation_property.unwrap_or_default(),
7627 r#additional_type: r#additional_type_property.unwrap_or_default(),
7628 r#alternate_name: r#alternate_name_property.unwrap_or_default(),
7629 r#description: r#description_property.unwrap_or_default(),
7630 r#disambiguating_description: r#disambiguating_description_property
7631 .unwrap_or_default(),
7632 r#identifier: r#identifier_property.unwrap_or_default(),
7633 r#image: r#image_property.unwrap_or_default(),
7634 r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
7635 r#name: r#name_property.unwrap_or_default(),
7636 r#potential_action: r#potential_action_property.unwrap_or_default(),
7637 r#same_as: r#same_as_property.unwrap_or_default(),
7638 r#subject_of: r#subject_of_property.unwrap_or_default(),
7639 r#url: r#url_property.unwrap_or_default(),
7640 })
7641 }
7642 }
7643 const FIELDS: &[&str] = &[
7644 "characterAttribute",
7645 "gameItem",
7646 "gameLocation",
7647 "numberOfPlayers",
7648 "quest",
7649 "about",
7650 "abstract",
7651 "accessMode",
7652 "accessModeSufficient",
7653 "accessibilityAPI",
7654 "accessibilityControl",
7655 "accessibilityFeature",
7656 "accessibilityHazard",
7657 "accessibilitySummary",
7658 "accountablePerson",
7659 "acquireLicensePage",
7660 "aggregateRating",
7661 "alternativeHeadline",
7662 "archivedAt",
7663 "assesses",
7664 "associatedMedia",
7665 "audience",
7666 "audio",
7667 "author",
7668 "award",
7669 "awards",
7670 "character",
7671 "citation",
7672 "comment",
7673 "commentCount",
7674 "conditionsOfAccess",
7675 "contentLocation",
7676 "contentRating",
7677 "contentReferenceTime",
7678 "contributor",
7679 "copyrightHolder",
7680 "copyrightNotice",
7681 "copyrightYear",
7682 "correction",
7683 "countryOfOrigin",
7684 "creativeWorkStatus",
7685 "creator",
7686 "creditText",
7687 "dateCreated",
7688 "dateModified",
7689 "datePublished",
7690 "discussionUrl",
7691 "editEIDR",
7692 "editor",
7693 "educationalAlignment",
7694 "educationalLevel",
7695 "educationalUse",
7696 "encoding",
7697 "encodingFormat",
7698 "encodings",
7699 "exampleOfWork",
7700 "expires",
7701 "fileFormat",
7702 "funder",
7703 "funding",
7704 "genre",
7705 "hasPart",
7706 "headline",
7707 "inLanguage",
7708 "interactionStatistic",
7709 "interactivityType",
7710 "interpretedAsClaim",
7711 "isAccessibleForFree",
7712 "isBasedOn",
7713 "isBasedOnUrl",
7714 "isFamilyFriendly",
7715 "isPartOf",
7716 "keywords",
7717 "learningResourceType",
7718 "license",
7719 "locationCreated",
7720 "mainEntity",
7721 "maintainer",
7722 "material",
7723 "materialExtent",
7724 "mentions",
7725 "offers",
7726 "pattern",
7727 "position",
7728 "producer",
7729 "provider",
7730 "publication",
7731 "publisher",
7732 "publisherImprint",
7733 "publishingPrinciples",
7734 "recordedAt",
7735 "releasedEvent",
7736 "review",
7737 "reviews",
7738 "schemaVersion",
7739 "sdDatePublished",
7740 "sdLicense",
7741 "sdPublisher",
7742 "size",
7743 "sourceOrganization",
7744 "spatial",
7745 "spatialCoverage",
7746 "sponsor",
7747 "teaches",
7748 "temporal",
7749 "temporalCoverage",
7750 "text",
7751 "thumbnail",
7752 "thumbnailUrl",
7753 "timeRequired",
7754 "translationOfWork",
7755 "translator",
7756 "typicalAgeRange",
7757 "usageInfo",
7758 "version",
7759 "video",
7760 "workExample",
7761 "workTranslation",
7762 "additionalType",
7763 "alternateName",
7764 "description",
7765 "disambiguatingDescription",
7766 "identifier",
7767 "image",
7768 "mainEntityOfPage",
7769 "name",
7770 "potentialAction",
7771 "sameAs",
7772 "subjectOf",
7773 "url",
7774 ];
7775 deserializer.deserialize_struct("Game", FIELDS, ClassVisitor)
7776 }
7777 }
7778}