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