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