1use super::*;
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct Recipe {
6 pub r#cook_time: Vec<CookTimeProperty>,
8 pub r#cooking_method: Vec<CookingMethodProperty>,
10 #[deprecated = "This schema is superseded by <https://schema.org/recipeIngredient>."]
12 pub r#ingredients: Vec<IngredientsProperty>,
13 pub r#nutrition: Vec<NutritionProperty>,
15 pub r#recipe_category: Vec<RecipeCategoryProperty>,
17 pub r#recipe_cuisine: Vec<RecipeCuisineProperty>,
19 pub r#recipe_ingredient: Vec<RecipeIngredientProperty>,
21 pub r#recipe_instructions: Vec<RecipeInstructionsProperty>,
23 pub r#recipe_yield: Vec<RecipeYieldProperty>,
25 pub r#suitable_for_diet: Vec<SuitableForDietProperty>,
27 pub r#about: Vec<AboutProperty>,
29 pub r#abstract: Vec<AbstractProperty>,
31 pub r#access_mode: Vec<AccessModeProperty>,
33 pub r#access_mode_sufficient: Vec<AccessModeSufficientProperty>,
35 pub r#accessibility_api: Vec<AccessibilityApiProperty>,
37 pub r#accessibility_control: Vec<AccessibilityControlProperty>,
39 pub r#accessibility_feature: Vec<AccessibilityFeatureProperty>,
41 pub r#accessibility_hazard: Vec<AccessibilityHazardProperty>,
43 pub r#accessibility_summary: Vec<AccessibilitySummaryProperty>,
45 pub r#accountable_person: Vec<AccountablePersonProperty>,
47 pub r#acquire_license_page: Vec<AcquireLicensePageProperty>,
49 pub r#aggregate_rating: Vec<AggregateRatingProperty>,
51 pub r#alternative_headline: Vec<AlternativeHeadlineProperty>,
53 pub r#archived_at: Vec<ArchivedAtProperty>,
55 pub r#assesses: Vec<AssessesProperty>,
57 pub r#associated_media: Vec<AssociatedMediaProperty>,
59 pub r#audience: Vec<AudienceProperty>,
61 pub r#audio: Vec<AudioProperty>,
63 pub r#author: Vec<AuthorProperty>,
65 pub r#award: Vec<AwardProperty>,
67 #[deprecated = "This schema is superseded by <https://schema.org/award>."]
69 pub r#awards: Vec<AwardsProperty>,
70 pub r#character: Vec<CharacterProperty>,
72 pub r#citation: Vec<CitationProperty>,
74 pub r#comment: Vec<CommentProperty>,
76 pub r#comment_count: Vec<CommentCountProperty>,
78 pub r#conditions_of_access: Vec<ConditionsOfAccessProperty>,
80 pub r#content_location: Vec<ContentLocationProperty>,
82 pub r#content_rating: Vec<ContentRatingProperty>,
84 pub r#content_reference_time: Vec<ContentReferenceTimeProperty>,
86 pub r#contributor: Vec<ContributorProperty>,
88 pub r#copyright_holder: Vec<CopyrightHolderProperty>,
90 pub r#copyright_notice: Vec<CopyrightNoticeProperty>,
92 pub r#copyright_year: Vec<CopyrightYearProperty>,
94 pub r#correction: Vec<CorrectionProperty>,
96 pub r#country_of_origin: Vec<CountryOfOriginProperty>,
98 pub r#creative_work_status: Vec<CreativeWorkStatusProperty>,
100 pub r#creator: Vec<CreatorProperty>,
102 pub r#credit_text: Vec<CreditTextProperty>,
104 pub r#date_created: Vec<DateCreatedProperty>,
106 pub r#date_modified: Vec<DateModifiedProperty>,
108 pub r#date_published: Vec<DatePublishedProperty>,
110 pub r#discussion_url: Vec<DiscussionUrlProperty>,
112 pub r#edit_eidr: Vec<EditEidrProperty>,
114 pub r#editor: Vec<EditorProperty>,
116 pub r#educational_alignment: Vec<EducationalAlignmentProperty>,
118 pub r#educational_level: Vec<EducationalLevelProperty>,
120 pub r#educational_use: Vec<EducationalUseProperty>,
122 pub r#encoding: Vec<EncodingProperty>,
124 pub r#encoding_format: Vec<EncodingFormatProperty>,
126 #[deprecated = "This schema is superseded by <https://schema.org/encoding>."]
128 pub r#encodings: Vec<EncodingsProperty>,
129 pub r#example_of_work: Vec<ExampleOfWorkProperty>,
131 pub r#expires: Vec<ExpiresProperty>,
133 #[deprecated = "This schema is superseded by <https://schema.org/encodingFormat>."]
135 pub r#file_format: Vec<FileFormatProperty>,
136 pub r#funder: Vec<FunderProperty>,
138 pub r#funding: Vec<FundingProperty>,
140 pub r#genre: Vec<GenreProperty>,
142 pub r#has_part: Vec<HasPartProperty>,
144 pub r#headline: Vec<HeadlineProperty>,
146 pub r#in_language: Vec<InLanguageProperty>,
148 pub r#interaction_statistic: Vec<InteractionStatisticProperty>,
150 pub r#interactivity_type: Vec<InteractivityTypeProperty>,
152 pub r#interpreted_as_claim: Vec<InterpretedAsClaimProperty>,
154 pub r#is_accessible_for_free: Vec<IsAccessibleForFreeProperty>,
156 pub r#is_based_on: Vec<IsBasedOnProperty>,
158 #[deprecated = "This schema is superseded by <https://schema.org/isBasedOn>."]
160 pub r#is_based_on_url: Vec<IsBasedOnUrlProperty>,
161 pub r#is_family_friendly: Vec<IsFamilyFriendlyProperty>,
163 pub r#is_part_of: Vec<IsPartOfProperty>,
165 pub r#keywords: Vec<KeywordsProperty>,
167 pub r#learning_resource_type: Vec<LearningResourceTypeProperty>,
169 pub r#license: Vec<LicenseProperty>,
171 pub r#location_created: Vec<LocationCreatedProperty>,
173 pub r#main_entity: Vec<MainEntityProperty>,
175 pub r#maintainer: Vec<MaintainerProperty>,
177 pub r#material: Vec<MaterialProperty>,
179 pub r#material_extent: Vec<MaterialExtentProperty>,
181 pub r#mentions: Vec<MentionsProperty>,
183 pub r#offers: Vec<OffersProperty>,
185 pub r#pattern: Vec<PatternProperty>,
187 pub r#position: Vec<PositionProperty>,
189 pub r#producer: Vec<ProducerProperty>,
191 pub r#provider: Vec<ProviderProperty>,
193 pub r#publication: Vec<PublicationProperty>,
195 pub r#publisher: Vec<PublisherProperty>,
197 pub r#publisher_imprint: Vec<PublisherImprintProperty>,
199 pub r#publishing_principles: Vec<PublishingPrinciplesProperty>,
201 pub r#recorded_at: Vec<RecordedAtProperty>,
203 pub r#released_event: Vec<ReleasedEventProperty>,
205 pub r#review: Vec<ReviewProperty>,
207 #[deprecated = "This schema is superseded by <https://schema.org/review>."]
209 pub r#reviews: Vec<ReviewsProperty>,
210 pub r#schema_version: Vec<SchemaVersionProperty>,
212 pub r#sd_date_published: Vec<SdDatePublishedProperty>,
214 pub r#sd_license: Vec<SdLicenseProperty>,
216 pub r#sd_publisher: Vec<SdPublisherProperty>,
218 pub r#size: Vec<SizeProperty>,
220 pub r#source_organization: Vec<SourceOrganizationProperty>,
222 pub r#spatial: Vec<SpatialProperty>,
224 pub r#spatial_coverage: Vec<SpatialCoverageProperty>,
226 pub r#sponsor: Vec<SponsorProperty>,
228 pub r#teaches: Vec<TeachesProperty>,
230 pub r#temporal: Vec<TemporalProperty>,
232 pub r#temporal_coverage: Vec<TemporalCoverageProperty>,
234 pub r#text: Vec<TextProperty>,
236 pub r#thumbnail: Vec<ThumbnailProperty>,
238 pub r#thumbnail_url: Vec<ThumbnailUrlProperty>,
240 pub r#time_required: Vec<TimeRequiredProperty>,
242 pub r#translation_of_work: Vec<TranslationOfWorkProperty>,
244 pub r#translator: Vec<TranslatorProperty>,
246 pub r#typical_age_range: Vec<TypicalAgeRangeProperty>,
248 pub r#usage_info: Vec<UsageInfoProperty>,
250 pub r#version: Vec<VersionProperty>,
252 pub r#video: Vec<VideoProperty>,
254 pub r#work_example: Vec<WorkExampleProperty>,
256 pub r#work_translation: Vec<WorkTranslationProperty>,
258 pub r#estimated_cost: Vec<EstimatedCostProperty>,
260 pub r#perform_time: Vec<PerformTimeProperty>,
262 pub r#prep_time: Vec<PrepTimeProperty>,
264 pub r#step: Vec<StepProperty>,
266 #[deprecated = "This schema is superseded by <https://schema.org/step>."]
268 pub r#steps: Vec<StepsProperty>,
269 pub r#supply: Vec<SupplyProperty>,
271 pub r#tool: Vec<ToolProperty>,
273 pub r#total_time: Vec<TotalTimeProperty>,
275 pub r#yield: Vec<YieldProperty>,
277 pub r#additional_type: Vec<AdditionalTypeProperty>,
279 pub r#alternate_name: Vec<AlternateNameProperty>,
281 pub r#description: Vec<DescriptionProperty>,
283 pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
285 pub r#identifier: Vec<IdentifierProperty>,
287 pub r#image: Vec<ImageProperty>,
289 pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
291 pub r#name: Vec<NameProperty>,
293 pub r#potential_action: Vec<PotentialActionProperty>,
295 pub r#same_as: Vec<SameAsProperty>,
297 pub r#subject_of: Vec<SubjectOfProperty>,
299 pub r#url: Vec<UrlProperty>,
301}
302pub trait RecipeTrait {
304 fn get_cook_time(&self) -> &[CookTimeProperty];
306 fn take_cook_time(&mut self) -> Vec<CookTimeProperty>;
308 fn get_cooking_method(&self) -> &[CookingMethodProperty];
310 fn take_cooking_method(&mut self) -> Vec<CookingMethodProperty>;
312 #[deprecated = "This schema is superseded by <https://schema.org/recipeIngredient>."]
314 fn get_ingredients(&self) -> &[IngredientsProperty];
315 #[deprecated = "This schema is superseded by <https://schema.org/recipeIngredient>."]
317 fn take_ingredients(&mut self) -> Vec<IngredientsProperty>;
318 fn get_nutrition(&self) -> &[NutritionProperty];
320 fn take_nutrition(&mut self) -> Vec<NutritionProperty>;
322 fn get_recipe_category(&self) -> &[RecipeCategoryProperty];
324 fn take_recipe_category(&mut self) -> Vec<RecipeCategoryProperty>;
326 fn get_recipe_cuisine(&self) -> &[RecipeCuisineProperty];
328 fn take_recipe_cuisine(&mut self) -> Vec<RecipeCuisineProperty>;
330 fn get_recipe_ingredient(&self) -> &[RecipeIngredientProperty];
332 fn take_recipe_ingredient(&mut self) -> Vec<RecipeIngredientProperty>;
334 fn get_recipe_instructions(&self) -> &[RecipeInstructionsProperty];
336 fn take_recipe_instructions(&mut self) -> Vec<RecipeInstructionsProperty>;
338 fn get_recipe_yield(&self) -> &[RecipeYieldProperty];
340 fn take_recipe_yield(&mut self) -> Vec<RecipeYieldProperty>;
342 fn get_suitable_for_diet(&self) -> &[SuitableForDietProperty];
344 fn take_suitable_for_diet(&mut self) -> Vec<SuitableForDietProperty>;
346}
347impl RecipeTrait for Recipe {
348 fn get_cook_time(&self) -> &[CookTimeProperty] {
349 self.r#cook_time.as_slice()
350 }
351 fn take_cook_time(&mut self) -> Vec<CookTimeProperty> {
352 std::mem::take(&mut self.r#cook_time)
353 }
354 fn get_cooking_method(&self) -> &[CookingMethodProperty] {
355 self.r#cooking_method.as_slice()
356 }
357 fn take_cooking_method(&mut self) -> Vec<CookingMethodProperty> {
358 std::mem::take(&mut self.r#cooking_method)
359 }
360 fn get_ingredients(&self) -> &[IngredientsProperty] {
361 self.r#ingredients.as_slice()
362 }
363 fn take_ingredients(&mut self) -> Vec<IngredientsProperty> {
364 std::mem::take(&mut self.r#ingredients)
365 }
366 fn get_nutrition(&self) -> &[NutritionProperty] {
367 self.r#nutrition.as_slice()
368 }
369 fn take_nutrition(&mut self) -> Vec<NutritionProperty> {
370 std::mem::take(&mut self.r#nutrition)
371 }
372 fn get_recipe_category(&self) -> &[RecipeCategoryProperty] {
373 self.r#recipe_category.as_slice()
374 }
375 fn take_recipe_category(&mut self) -> Vec<RecipeCategoryProperty> {
376 std::mem::take(&mut self.r#recipe_category)
377 }
378 fn get_recipe_cuisine(&self) -> &[RecipeCuisineProperty] {
379 self.r#recipe_cuisine.as_slice()
380 }
381 fn take_recipe_cuisine(&mut self) -> Vec<RecipeCuisineProperty> {
382 std::mem::take(&mut self.r#recipe_cuisine)
383 }
384 fn get_recipe_ingredient(&self) -> &[RecipeIngredientProperty] {
385 self.r#recipe_ingredient.as_slice()
386 }
387 fn take_recipe_ingredient(&mut self) -> Vec<RecipeIngredientProperty> {
388 std::mem::take(&mut self.r#recipe_ingredient)
389 }
390 fn get_recipe_instructions(&self) -> &[RecipeInstructionsProperty] {
391 self.r#recipe_instructions.as_slice()
392 }
393 fn take_recipe_instructions(&mut self) -> Vec<RecipeInstructionsProperty> {
394 std::mem::take(&mut self.r#recipe_instructions)
395 }
396 fn get_recipe_yield(&self) -> &[RecipeYieldProperty] {
397 self.r#recipe_yield.as_slice()
398 }
399 fn take_recipe_yield(&mut self) -> Vec<RecipeYieldProperty> {
400 std::mem::take(&mut self.r#recipe_yield)
401 }
402 fn get_suitable_for_diet(&self) -> &[SuitableForDietProperty] {
403 self.r#suitable_for_diet.as_slice()
404 }
405 fn take_suitable_for_diet(&mut self) -> Vec<SuitableForDietProperty> {
406 std::mem::take(&mut self.r#suitable_for_diet)
407 }
408}
409impl CreativeWorkTrait for Recipe {
410 fn get_about(&self) -> &[AboutProperty] {
411 self.r#about.as_slice()
412 }
413 fn take_about(&mut self) -> Vec<AboutProperty> {
414 std::mem::take(&mut self.r#about)
415 }
416 fn get_abstract(&self) -> &[AbstractProperty] {
417 self.r#abstract.as_slice()
418 }
419 fn take_abstract(&mut self) -> Vec<AbstractProperty> {
420 std::mem::take(&mut self.r#abstract)
421 }
422 fn get_access_mode(&self) -> &[AccessModeProperty] {
423 self.r#access_mode.as_slice()
424 }
425 fn take_access_mode(&mut self) -> Vec<AccessModeProperty> {
426 std::mem::take(&mut self.r#access_mode)
427 }
428 fn get_access_mode_sufficient(&self) -> &[AccessModeSufficientProperty] {
429 self.r#access_mode_sufficient.as_slice()
430 }
431 fn take_access_mode_sufficient(&mut self) -> Vec<AccessModeSufficientProperty> {
432 std::mem::take(&mut self.r#access_mode_sufficient)
433 }
434 fn get_accessibility_api(&self) -> &[AccessibilityApiProperty] {
435 self.r#accessibility_api.as_slice()
436 }
437 fn take_accessibility_api(&mut self) -> Vec<AccessibilityApiProperty> {
438 std::mem::take(&mut self.r#accessibility_api)
439 }
440 fn get_accessibility_control(&self) -> &[AccessibilityControlProperty] {
441 self.r#accessibility_control.as_slice()
442 }
443 fn take_accessibility_control(&mut self) -> Vec<AccessibilityControlProperty> {
444 std::mem::take(&mut self.r#accessibility_control)
445 }
446 fn get_accessibility_feature(&self) -> &[AccessibilityFeatureProperty] {
447 self.r#accessibility_feature.as_slice()
448 }
449 fn take_accessibility_feature(&mut self) -> Vec<AccessibilityFeatureProperty> {
450 std::mem::take(&mut self.r#accessibility_feature)
451 }
452 fn get_accessibility_hazard(&self) -> &[AccessibilityHazardProperty] {
453 self.r#accessibility_hazard.as_slice()
454 }
455 fn take_accessibility_hazard(&mut self) -> Vec<AccessibilityHazardProperty> {
456 std::mem::take(&mut self.r#accessibility_hazard)
457 }
458 fn get_accessibility_summary(&self) -> &[AccessibilitySummaryProperty] {
459 self.r#accessibility_summary.as_slice()
460 }
461 fn take_accessibility_summary(&mut self) -> Vec<AccessibilitySummaryProperty> {
462 std::mem::take(&mut self.r#accessibility_summary)
463 }
464 fn get_accountable_person(&self) -> &[AccountablePersonProperty] {
465 self.r#accountable_person.as_slice()
466 }
467 fn take_accountable_person(&mut self) -> Vec<AccountablePersonProperty> {
468 std::mem::take(&mut self.r#accountable_person)
469 }
470 fn get_acquire_license_page(&self) -> &[AcquireLicensePageProperty] {
471 self.r#acquire_license_page.as_slice()
472 }
473 fn take_acquire_license_page(&mut self) -> Vec<AcquireLicensePageProperty> {
474 std::mem::take(&mut self.r#acquire_license_page)
475 }
476 fn get_aggregate_rating(&self) -> &[AggregateRatingProperty] {
477 self.r#aggregate_rating.as_slice()
478 }
479 fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty> {
480 std::mem::take(&mut self.r#aggregate_rating)
481 }
482 fn get_alternative_headline(&self) -> &[AlternativeHeadlineProperty] {
483 self.r#alternative_headline.as_slice()
484 }
485 fn take_alternative_headline(&mut self) -> Vec<AlternativeHeadlineProperty> {
486 std::mem::take(&mut self.r#alternative_headline)
487 }
488 fn get_archived_at(&self) -> &[ArchivedAtProperty] {
489 self.r#archived_at.as_slice()
490 }
491 fn take_archived_at(&mut self) -> Vec<ArchivedAtProperty> {
492 std::mem::take(&mut self.r#archived_at)
493 }
494 fn get_assesses(&self) -> &[AssessesProperty] {
495 self.r#assesses.as_slice()
496 }
497 fn take_assesses(&mut self) -> Vec<AssessesProperty> {
498 std::mem::take(&mut self.r#assesses)
499 }
500 fn get_associated_media(&self) -> &[AssociatedMediaProperty] {
501 self.r#associated_media.as_slice()
502 }
503 fn take_associated_media(&mut self) -> Vec<AssociatedMediaProperty> {
504 std::mem::take(&mut self.r#associated_media)
505 }
506 fn get_audience(&self) -> &[AudienceProperty] {
507 self.r#audience.as_slice()
508 }
509 fn take_audience(&mut self) -> Vec<AudienceProperty> {
510 std::mem::take(&mut self.r#audience)
511 }
512 fn get_audio(&self) -> &[AudioProperty] {
513 self.r#audio.as_slice()
514 }
515 fn take_audio(&mut self) -> Vec<AudioProperty> {
516 std::mem::take(&mut self.r#audio)
517 }
518 fn get_author(&self) -> &[AuthorProperty] {
519 self.r#author.as_slice()
520 }
521 fn take_author(&mut self) -> Vec<AuthorProperty> {
522 std::mem::take(&mut self.r#author)
523 }
524 fn get_award(&self) -> &[AwardProperty] {
525 self.r#award.as_slice()
526 }
527 fn take_award(&mut self) -> Vec<AwardProperty> {
528 std::mem::take(&mut self.r#award)
529 }
530 fn get_awards(&self) -> &[AwardsProperty] {
531 self.r#awards.as_slice()
532 }
533 fn take_awards(&mut self) -> Vec<AwardsProperty> {
534 std::mem::take(&mut self.r#awards)
535 }
536 fn get_character(&self) -> &[CharacterProperty] {
537 self.r#character.as_slice()
538 }
539 fn take_character(&mut self) -> Vec<CharacterProperty> {
540 std::mem::take(&mut self.r#character)
541 }
542 fn get_citation(&self) -> &[CitationProperty] {
543 self.r#citation.as_slice()
544 }
545 fn take_citation(&mut self) -> Vec<CitationProperty> {
546 std::mem::take(&mut self.r#citation)
547 }
548 fn get_comment(&self) -> &[CommentProperty] {
549 self.r#comment.as_slice()
550 }
551 fn take_comment(&mut self) -> Vec<CommentProperty> {
552 std::mem::take(&mut self.r#comment)
553 }
554 fn get_comment_count(&self) -> &[CommentCountProperty] {
555 self.r#comment_count.as_slice()
556 }
557 fn take_comment_count(&mut self) -> Vec<CommentCountProperty> {
558 std::mem::take(&mut self.r#comment_count)
559 }
560 fn get_conditions_of_access(&self) -> &[ConditionsOfAccessProperty] {
561 self.r#conditions_of_access.as_slice()
562 }
563 fn take_conditions_of_access(&mut self) -> Vec<ConditionsOfAccessProperty> {
564 std::mem::take(&mut self.r#conditions_of_access)
565 }
566 fn get_content_location(&self) -> &[ContentLocationProperty] {
567 self.r#content_location.as_slice()
568 }
569 fn take_content_location(&mut self) -> Vec<ContentLocationProperty> {
570 std::mem::take(&mut self.r#content_location)
571 }
572 fn get_content_rating(&self) -> &[ContentRatingProperty] {
573 self.r#content_rating.as_slice()
574 }
575 fn take_content_rating(&mut self) -> Vec<ContentRatingProperty> {
576 std::mem::take(&mut self.r#content_rating)
577 }
578 fn get_content_reference_time(&self) -> &[ContentReferenceTimeProperty] {
579 self.r#content_reference_time.as_slice()
580 }
581 fn take_content_reference_time(&mut self) -> Vec<ContentReferenceTimeProperty> {
582 std::mem::take(&mut self.r#content_reference_time)
583 }
584 fn get_contributor(&self) -> &[ContributorProperty] {
585 self.r#contributor.as_slice()
586 }
587 fn take_contributor(&mut self) -> Vec<ContributorProperty> {
588 std::mem::take(&mut self.r#contributor)
589 }
590 fn get_copyright_holder(&self) -> &[CopyrightHolderProperty] {
591 self.r#copyright_holder.as_slice()
592 }
593 fn take_copyright_holder(&mut self) -> Vec<CopyrightHolderProperty> {
594 std::mem::take(&mut self.r#copyright_holder)
595 }
596 fn get_copyright_notice(&self) -> &[CopyrightNoticeProperty] {
597 self.r#copyright_notice.as_slice()
598 }
599 fn take_copyright_notice(&mut self) -> Vec<CopyrightNoticeProperty> {
600 std::mem::take(&mut self.r#copyright_notice)
601 }
602 fn get_copyright_year(&self) -> &[CopyrightYearProperty] {
603 self.r#copyright_year.as_slice()
604 }
605 fn take_copyright_year(&mut self) -> Vec<CopyrightYearProperty> {
606 std::mem::take(&mut self.r#copyright_year)
607 }
608 fn get_correction(&self) -> &[CorrectionProperty] {
609 self.r#correction.as_slice()
610 }
611 fn take_correction(&mut self) -> Vec<CorrectionProperty> {
612 std::mem::take(&mut self.r#correction)
613 }
614 fn get_country_of_origin(&self) -> &[CountryOfOriginProperty] {
615 self.r#country_of_origin.as_slice()
616 }
617 fn take_country_of_origin(&mut self) -> Vec<CountryOfOriginProperty> {
618 std::mem::take(&mut self.r#country_of_origin)
619 }
620 fn get_creative_work_status(&self) -> &[CreativeWorkStatusProperty] {
621 self.r#creative_work_status.as_slice()
622 }
623 fn take_creative_work_status(&mut self) -> Vec<CreativeWorkStatusProperty> {
624 std::mem::take(&mut self.r#creative_work_status)
625 }
626 fn get_creator(&self) -> &[CreatorProperty] {
627 self.r#creator.as_slice()
628 }
629 fn take_creator(&mut self) -> Vec<CreatorProperty> {
630 std::mem::take(&mut self.r#creator)
631 }
632 fn get_credit_text(&self) -> &[CreditTextProperty] {
633 self.r#credit_text.as_slice()
634 }
635 fn take_credit_text(&mut self) -> Vec<CreditTextProperty> {
636 std::mem::take(&mut self.r#credit_text)
637 }
638 fn get_date_created(&self) -> &[DateCreatedProperty] {
639 self.r#date_created.as_slice()
640 }
641 fn take_date_created(&mut self) -> Vec<DateCreatedProperty> {
642 std::mem::take(&mut self.r#date_created)
643 }
644 fn get_date_modified(&self) -> &[DateModifiedProperty] {
645 self.r#date_modified.as_slice()
646 }
647 fn take_date_modified(&mut self) -> Vec<DateModifiedProperty> {
648 std::mem::take(&mut self.r#date_modified)
649 }
650 fn get_date_published(&self) -> &[DatePublishedProperty] {
651 self.r#date_published.as_slice()
652 }
653 fn take_date_published(&mut self) -> Vec<DatePublishedProperty> {
654 std::mem::take(&mut self.r#date_published)
655 }
656 fn get_discussion_url(&self) -> &[DiscussionUrlProperty] {
657 self.r#discussion_url.as_slice()
658 }
659 fn take_discussion_url(&mut self) -> Vec<DiscussionUrlProperty> {
660 std::mem::take(&mut self.r#discussion_url)
661 }
662 fn get_edit_eidr(&self) -> &[EditEidrProperty] {
663 self.r#edit_eidr.as_slice()
664 }
665 fn take_edit_eidr(&mut self) -> Vec<EditEidrProperty> {
666 std::mem::take(&mut self.r#edit_eidr)
667 }
668 fn get_editor(&self) -> &[EditorProperty] {
669 self.r#editor.as_slice()
670 }
671 fn take_editor(&mut self) -> Vec<EditorProperty> {
672 std::mem::take(&mut self.r#editor)
673 }
674 fn get_educational_alignment(&self) -> &[EducationalAlignmentProperty] {
675 self.r#educational_alignment.as_slice()
676 }
677 fn take_educational_alignment(&mut self) -> Vec<EducationalAlignmentProperty> {
678 std::mem::take(&mut self.r#educational_alignment)
679 }
680 fn get_educational_level(&self) -> &[EducationalLevelProperty] {
681 self.r#educational_level.as_slice()
682 }
683 fn take_educational_level(&mut self) -> Vec<EducationalLevelProperty> {
684 std::mem::take(&mut self.r#educational_level)
685 }
686 fn get_educational_use(&self) -> &[EducationalUseProperty] {
687 self.r#educational_use.as_slice()
688 }
689 fn take_educational_use(&mut self) -> Vec<EducationalUseProperty> {
690 std::mem::take(&mut self.r#educational_use)
691 }
692 fn get_encoding(&self) -> &[EncodingProperty] {
693 self.r#encoding.as_slice()
694 }
695 fn take_encoding(&mut self) -> Vec<EncodingProperty> {
696 std::mem::take(&mut self.r#encoding)
697 }
698 fn get_encoding_format(&self) -> &[EncodingFormatProperty] {
699 self.r#encoding_format.as_slice()
700 }
701 fn take_encoding_format(&mut self) -> Vec<EncodingFormatProperty> {
702 std::mem::take(&mut self.r#encoding_format)
703 }
704 fn get_encodings(&self) -> &[EncodingsProperty] {
705 self.r#encodings.as_slice()
706 }
707 fn take_encodings(&mut self) -> Vec<EncodingsProperty> {
708 std::mem::take(&mut self.r#encodings)
709 }
710 fn get_example_of_work(&self) -> &[ExampleOfWorkProperty] {
711 self.r#example_of_work.as_slice()
712 }
713 fn take_example_of_work(&mut self) -> Vec<ExampleOfWorkProperty> {
714 std::mem::take(&mut self.r#example_of_work)
715 }
716 fn get_expires(&self) -> &[ExpiresProperty] {
717 self.r#expires.as_slice()
718 }
719 fn take_expires(&mut self) -> Vec<ExpiresProperty> {
720 std::mem::take(&mut self.r#expires)
721 }
722 fn get_file_format(&self) -> &[FileFormatProperty] {
723 self.r#file_format.as_slice()
724 }
725 fn take_file_format(&mut self) -> Vec<FileFormatProperty> {
726 std::mem::take(&mut self.r#file_format)
727 }
728 fn get_funder(&self) -> &[FunderProperty] {
729 self.r#funder.as_slice()
730 }
731 fn take_funder(&mut self) -> Vec<FunderProperty> {
732 std::mem::take(&mut self.r#funder)
733 }
734 fn get_funding(&self) -> &[FundingProperty] {
735 self.r#funding.as_slice()
736 }
737 fn take_funding(&mut self) -> Vec<FundingProperty> {
738 std::mem::take(&mut self.r#funding)
739 }
740 fn get_genre(&self) -> &[GenreProperty] {
741 self.r#genre.as_slice()
742 }
743 fn take_genre(&mut self) -> Vec<GenreProperty> {
744 std::mem::take(&mut self.r#genre)
745 }
746 fn get_has_part(&self) -> &[HasPartProperty] {
747 self.r#has_part.as_slice()
748 }
749 fn take_has_part(&mut self) -> Vec<HasPartProperty> {
750 std::mem::take(&mut self.r#has_part)
751 }
752 fn get_headline(&self) -> &[HeadlineProperty] {
753 self.r#headline.as_slice()
754 }
755 fn take_headline(&mut self) -> Vec<HeadlineProperty> {
756 std::mem::take(&mut self.r#headline)
757 }
758 fn get_in_language(&self) -> &[InLanguageProperty] {
759 self.r#in_language.as_slice()
760 }
761 fn take_in_language(&mut self) -> Vec<InLanguageProperty> {
762 std::mem::take(&mut self.r#in_language)
763 }
764 fn get_interaction_statistic(&self) -> &[InteractionStatisticProperty] {
765 self.r#interaction_statistic.as_slice()
766 }
767 fn take_interaction_statistic(&mut self) -> Vec<InteractionStatisticProperty> {
768 std::mem::take(&mut self.r#interaction_statistic)
769 }
770 fn get_interactivity_type(&self) -> &[InteractivityTypeProperty] {
771 self.r#interactivity_type.as_slice()
772 }
773 fn take_interactivity_type(&mut self) -> Vec<InteractivityTypeProperty> {
774 std::mem::take(&mut self.r#interactivity_type)
775 }
776 fn get_interpreted_as_claim(&self) -> &[InterpretedAsClaimProperty] {
777 self.r#interpreted_as_claim.as_slice()
778 }
779 fn take_interpreted_as_claim(&mut self) -> Vec<InterpretedAsClaimProperty> {
780 std::mem::take(&mut self.r#interpreted_as_claim)
781 }
782 fn get_is_accessible_for_free(&self) -> &[IsAccessibleForFreeProperty] {
783 self.r#is_accessible_for_free.as_slice()
784 }
785 fn take_is_accessible_for_free(&mut self) -> Vec<IsAccessibleForFreeProperty> {
786 std::mem::take(&mut self.r#is_accessible_for_free)
787 }
788 fn get_is_based_on(&self) -> &[IsBasedOnProperty] {
789 self.r#is_based_on.as_slice()
790 }
791 fn take_is_based_on(&mut self) -> Vec<IsBasedOnProperty> {
792 std::mem::take(&mut self.r#is_based_on)
793 }
794 fn get_is_based_on_url(&self) -> &[IsBasedOnUrlProperty] {
795 self.r#is_based_on_url.as_slice()
796 }
797 fn take_is_based_on_url(&mut self) -> Vec<IsBasedOnUrlProperty> {
798 std::mem::take(&mut self.r#is_based_on_url)
799 }
800 fn get_is_family_friendly(&self) -> &[IsFamilyFriendlyProperty] {
801 self.r#is_family_friendly.as_slice()
802 }
803 fn take_is_family_friendly(&mut self) -> Vec<IsFamilyFriendlyProperty> {
804 std::mem::take(&mut self.r#is_family_friendly)
805 }
806 fn get_is_part_of(&self) -> &[IsPartOfProperty] {
807 self.r#is_part_of.as_slice()
808 }
809 fn take_is_part_of(&mut self) -> Vec<IsPartOfProperty> {
810 std::mem::take(&mut self.r#is_part_of)
811 }
812 fn get_keywords(&self) -> &[KeywordsProperty] {
813 self.r#keywords.as_slice()
814 }
815 fn take_keywords(&mut self) -> Vec<KeywordsProperty> {
816 std::mem::take(&mut self.r#keywords)
817 }
818 fn get_learning_resource_type(&self) -> &[LearningResourceTypeProperty] {
819 self.r#learning_resource_type.as_slice()
820 }
821 fn take_learning_resource_type(&mut self) -> Vec<LearningResourceTypeProperty> {
822 std::mem::take(&mut self.r#learning_resource_type)
823 }
824 fn get_license(&self) -> &[LicenseProperty] {
825 self.r#license.as_slice()
826 }
827 fn take_license(&mut self) -> Vec<LicenseProperty> {
828 std::mem::take(&mut self.r#license)
829 }
830 fn get_location_created(&self) -> &[LocationCreatedProperty] {
831 self.r#location_created.as_slice()
832 }
833 fn take_location_created(&mut self) -> Vec<LocationCreatedProperty> {
834 std::mem::take(&mut self.r#location_created)
835 }
836 fn get_main_entity(&self) -> &[MainEntityProperty] {
837 self.r#main_entity.as_slice()
838 }
839 fn take_main_entity(&mut self) -> Vec<MainEntityProperty> {
840 std::mem::take(&mut self.r#main_entity)
841 }
842 fn get_maintainer(&self) -> &[MaintainerProperty] {
843 self.r#maintainer.as_slice()
844 }
845 fn take_maintainer(&mut self) -> Vec<MaintainerProperty> {
846 std::mem::take(&mut self.r#maintainer)
847 }
848 fn get_material(&self) -> &[MaterialProperty] {
849 self.r#material.as_slice()
850 }
851 fn take_material(&mut self) -> Vec<MaterialProperty> {
852 std::mem::take(&mut self.r#material)
853 }
854 fn get_material_extent(&self) -> &[MaterialExtentProperty] {
855 self.r#material_extent.as_slice()
856 }
857 fn take_material_extent(&mut self) -> Vec<MaterialExtentProperty> {
858 std::mem::take(&mut self.r#material_extent)
859 }
860 fn get_mentions(&self) -> &[MentionsProperty] {
861 self.r#mentions.as_slice()
862 }
863 fn take_mentions(&mut self) -> Vec<MentionsProperty> {
864 std::mem::take(&mut self.r#mentions)
865 }
866 fn get_offers(&self) -> &[OffersProperty] {
867 self.r#offers.as_slice()
868 }
869 fn take_offers(&mut self) -> Vec<OffersProperty> {
870 std::mem::take(&mut self.r#offers)
871 }
872 fn get_pattern(&self) -> &[PatternProperty] {
873 self.r#pattern.as_slice()
874 }
875 fn take_pattern(&mut self) -> Vec<PatternProperty> {
876 std::mem::take(&mut self.r#pattern)
877 }
878 fn get_position(&self) -> &[PositionProperty] {
879 self.r#position.as_slice()
880 }
881 fn take_position(&mut self) -> Vec<PositionProperty> {
882 std::mem::take(&mut self.r#position)
883 }
884 fn get_producer(&self) -> &[ProducerProperty] {
885 self.r#producer.as_slice()
886 }
887 fn take_producer(&mut self) -> Vec<ProducerProperty> {
888 std::mem::take(&mut self.r#producer)
889 }
890 fn get_provider(&self) -> &[ProviderProperty] {
891 self.r#provider.as_slice()
892 }
893 fn take_provider(&mut self) -> Vec<ProviderProperty> {
894 std::mem::take(&mut self.r#provider)
895 }
896 fn get_publication(&self) -> &[PublicationProperty] {
897 self.r#publication.as_slice()
898 }
899 fn take_publication(&mut self) -> Vec<PublicationProperty> {
900 std::mem::take(&mut self.r#publication)
901 }
902 fn get_publisher(&self) -> &[PublisherProperty] {
903 self.r#publisher.as_slice()
904 }
905 fn take_publisher(&mut self) -> Vec<PublisherProperty> {
906 std::mem::take(&mut self.r#publisher)
907 }
908 fn get_publisher_imprint(&self) -> &[PublisherImprintProperty] {
909 self.r#publisher_imprint.as_slice()
910 }
911 fn take_publisher_imprint(&mut self) -> Vec<PublisherImprintProperty> {
912 std::mem::take(&mut self.r#publisher_imprint)
913 }
914 fn get_publishing_principles(&self) -> &[PublishingPrinciplesProperty] {
915 self.r#publishing_principles.as_slice()
916 }
917 fn take_publishing_principles(&mut self) -> Vec<PublishingPrinciplesProperty> {
918 std::mem::take(&mut self.r#publishing_principles)
919 }
920 fn get_recorded_at(&self) -> &[RecordedAtProperty] {
921 self.r#recorded_at.as_slice()
922 }
923 fn take_recorded_at(&mut self) -> Vec<RecordedAtProperty> {
924 std::mem::take(&mut self.r#recorded_at)
925 }
926 fn get_released_event(&self) -> &[ReleasedEventProperty] {
927 self.r#released_event.as_slice()
928 }
929 fn take_released_event(&mut self) -> Vec<ReleasedEventProperty> {
930 std::mem::take(&mut self.r#released_event)
931 }
932 fn get_review(&self) -> &[ReviewProperty] {
933 self.r#review.as_slice()
934 }
935 fn take_review(&mut self) -> Vec<ReviewProperty> {
936 std::mem::take(&mut self.r#review)
937 }
938 fn get_reviews(&self) -> &[ReviewsProperty] {
939 self.r#reviews.as_slice()
940 }
941 fn take_reviews(&mut self) -> Vec<ReviewsProperty> {
942 std::mem::take(&mut self.r#reviews)
943 }
944 fn get_schema_version(&self) -> &[SchemaVersionProperty] {
945 self.r#schema_version.as_slice()
946 }
947 fn take_schema_version(&mut self) -> Vec<SchemaVersionProperty> {
948 std::mem::take(&mut self.r#schema_version)
949 }
950 fn get_sd_date_published(&self) -> &[SdDatePublishedProperty] {
951 self.r#sd_date_published.as_slice()
952 }
953 fn take_sd_date_published(&mut self) -> Vec<SdDatePublishedProperty> {
954 std::mem::take(&mut self.r#sd_date_published)
955 }
956 fn get_sd_license(&self) -> &[SdLicenseProperty] {
957 self.r#sd_license.as_slice()
958 }
959 fn take_sd_license(&mut self) -> Vec<SdLicenseProperty> {
960 std::mem::take(&mut self.r#sd_license)
961 }
962 fn get_sd_publisher(&self) -> &[SdPublisherProperty] {
963 self.r#sd_publisher.as_slice()
964 }
965 fn take_sd_publisher(&mut self) -> Vec<SdPublisherProperty> {
966 std::mem::take(&mut self.r#sd_publisher)
967 }
968 fn get_size(&self) -> &[SizeProperty] {
969 self.r#size.as_slice()
970 }
971 fn take_size(&mut self) -> Vec<SizeProperty> {
972 std::mem::take(&mut self.r#size)
973 }
974 fn get_source_organization(&self) -> &[SourceOrganizationProperty] {
975 self.r#source_organization.as_slice()
976 }
977 fn take_source_organization(&mut self) -> Vec<SourceOrganizationProperty> {
978 std::mem::take(&mut self.r#source_organization)
979 }
980 fn get_spatial(&self) -> &[SpatialProperty] {
981 self.r#spatial.as_slice()
982 }
983 fn take_spatial(&mut self) -> Vec<SpatialProperty> {
984 std::mem::take(&mut self.r#spatial)
985 }
986 fn get_spatial_coverage(&self) -> &[SpatialCoverageProperty] {
987 self.r#spatial_coverage.as_slice()
988 }
989 fn take_spatial_coverage(&mut self) -> Vec<SpatialCoverageProperty> {
990 std::mem::take(&mut self.r#spatial_coverage)
991 }
992 fn get_sponsor(&self) -> &[SponsorProperty] {
993 self.r#sponsor.as_slice()
994 }
995 fn take_sponsor(&mut self) -> Vec<SponsorProperty> {
996 std::mem::take(&mut self.r#sponsor)
997 }
998 fn get_teaches(&self) -> &[TeachesProperty] {
999 self.r#teaches.as_slice()
1000 }
1001 fn take_teaches(&mut self) -> Vec<TeachesProperty> {
1002 std::mem::take(&mut self.r#teaches)
1003 }
1004 fn get_temporal(&self) -> &[TemporalProperty] {
1005 self.r#temporal.as_slice()
1006 }
1007 fn take_temporal(&mut self) -> Vec<TemporalProperty> {
1008 std::mem::take(&mut self.r#temporal)
1009 }
1010 fn get_temporal_coverage(&self) -> &[TemporalCoverageProperty] {
1011 self.r#temporal_coverage.as_slice()
1012 }
1013 fn take_temporal_coverage(&mut self) -> Vec<TemporalCoverageProperty> {
1014 std::mem::take(&mut self.r#temporal_coverage)
1015 }
1016 fn get_text(&self) -> &[TextProperty] {
1017 self.r#text.as_slice()
1018 }
1019 fn take_text(&mut self) -> Vec<TextProperty> {
1020 std::mem::take(&mut self.r#text)
1021 }
1022 fn get_thumbnail(&self) -> &[ThumbnailProperty] {
1023 self.r#thumbnail.as_slice()
1024 }
1025 fn take_thumbnail(&mut self) -> Vec<ThumbnailProperty> {
1026 std::mem::take(&mut self.r#thumbnail)
1027 }
1028 fn get_thumbnail_url(&self) -> &[ThumbnailUrlProperty] {
1029 self.r#thumbnail_url.as_slice()
1030 }
1031 fn take_thumbnail_url(&mut self) -> Vec<ThumbnailUrlProperty> {
1032 std::mem::take(&mut self.r#thumbnail_url)
1033 }
1034 fn get_time_required(&self) -> &[TimeRequiredProperty] {
1035 self.r#time_required.as_slice()
1036 }
1037 fn take_time_required(&mut self) -> Vec<TimeRequiredProperty> {
1038 std::mem::take(&mut self.r#time_required)
1039 }
1040 fn get_translation_of_work(&self) -> &[TranslationOfWorkProperty] {
1041 self.r#translation_of_work.as_slice()
1042 }
1043 fn take_translation_of_work(&mut self) -> Vec<TranslationOfWorkProperty> {
1044 std::mem::take(&mut self.r#translation_of_work)
1045 }
1046 fn get_translator(&self) -> &[TranslatorProperty] {
1047 self.r#translator.as_slice()
1048 }
1049 fn take_translator(&mut self) -> Vec<TranslatorProperty> {
1050 std::mem::take(&mut self.r#translator)
1051 }
1052 fn get_typical_age_range(&self) -> &[TypicalAgeRangeProperty] {
1053 self.r#typical_age_range.as_slice()
1054 }
1055 fn take_typical_age_range(&mut self) -> Vec<TypicalAgeRangeProperty> {
1056 std::mem::take(&mut self.r#typical_age_range)
1057 }
1058 fn get_usage_info(&self) -> &[UsageInfoProperty] {
1059 self.r#usage_info.as_slice()
1060 }
1061 fn take_usage_info(&mut self) -> Vec<UsageInfoProperty> {
1062 std::mem::take(&mut self.r#usage_info)
1063 }
1064 fn get_version(&self) -> &[VersionProperty] {
1065 self.r#version.as_slice()
1066 }
1067 fn take_version(&mut self) -> Vec<VersionProperty> {
1068 std::mem::take(&mut self.r#version)
1069 }
1070 fn get_video(&self) -> &[VideoProperty] {
1071 self.r#video.as_slice()
1072 }
1073 fn take_video(&mut self) -> Vec<VideoProperty> {
1074 std::mem::take(&mut self.r#video)
1075 }
1076 fn get_work_example(&self) -> &[WorkExampleProperty] {
1077 self.r#work_example.as_slice()
1078 }
1079 fn take_work_example(&mut self) -> Vec<WorkExampleProperty> {
1080 std::mem::take(&mut self.r#work_example)
1081 }
1082 fn get_work_translation(&self) -> &[WorkTranslationProperty] {
1083 self.r#work_translation.as_slice()
1084 }
1085 fn take_work_translation(&mut self) -> Vec<WorkTranslationProperty> {
1086 std::mem::take(&mut self.r#work_translation)
1087 }
1088}
1089impl HowToTrait for Recipe {
1090 fn get_estimated_cost(&self) -> &[EstimatedCostProperty] {
1091 self.r#estimated_cost.as_slice()
1092 }
1093 fn take_estimated_cost(&mut self) -> Vec<EstimatedCostProperty> {
1094 std::mem::take(&mut self.r#estimated_cost)
1095 }
1096 fn get_perform_time(&self) -> &[PerformTimeProperty] {
1097 self.r#perform_time.as_slice()
1098 }
1099 fn take_perform_time(&mut self) -> Vec<PerformTimeProperty> {
1100 std::mem::take(&mut self.r#perform_time)
1101 }
1102 fn get_prep_time(&self) -> &[PrepTimeProperty] {
1103 self.r#prep_time.as_slice()
1104 }
1105 fn take_prep_time(&mut self) -> Vec<PrepTimeProperty> {
1106 std::mem::take(&mut self.r#prep_time)
1107 }
1108 fn get_step(&self) -> &[StepProperty] {
1109 self.r#step.as_slice()
1110 }
1111 fn take_step(&mut self) -> Vec<StepProperty> {
1112 std::mem::take(&mut self.r#step)
1113 }
1114 fn get_steps(&self) -> &[StepsProperty] {
1115 self.r#steps.as_slice()
1116 }
1117 fn take_steps(&mut self) -> Vec<StepsProperty> {
1118 std::mem::take(&mut self.r#steps)
1119 }
1120 fn get_supply(&self) -> &[SupplyProperty] {
1121 self.r#supply.as_slice()
1122 }
1123 fn take_supply(&mut self) -> Vec<SupplyProperty> {
1124 std::mem::take(&mut self.r#supply)
1125 }
1126 fn get_tool(&self) -> &[ToolProperty] {
1127 self.r#tool.as_slice()
1128 }
1129 fn take_tool(&mut self) -> Vec<ToolProperty> {
1130 std::mem::take(&mut self.r#tool)
1131 }
1132 fn get_total_time(&self) -> &[TotalTimeProperty] {
1133 self.r#total_time.as_slice()
1134 }
1135 fn take_total_time(&mut self) -> Vec<TotalTimeProperty> {
1136 std::mem::take(&mut self.r#total_time)
1137 }
1138 fn get_yield(&self) -> &[YieldProperty] {
1139 self.r#yield.as_slice()
1140 }
1141 fn take_yield(&mut self) -> Vec<YieldProperty> {
1142 std::mem::take(&mut self.r#yield)
1143 }
1144}
1145impl ThingTrait for Recipe {
1146 fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
1147 self.r#additional_type.as_slice()
1148 }
1149 fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
1150 std::mem::take(&mut self.r#additional_type)
1151 }
1152 fn get_alternate_name(&self) -> &[AlternateNameProperty] {
1153 self.r#alternate_name.as_slice()
1154 }
1155 fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
1156 std::mem::take(&mut self.r#alternate_name)
1157 }
1158 fn get_description(&self) -> &[DescriptionProperty] {
1159 self.r#description.as_slice()
1160 }
1161 fn take_description(&mut self) -> Vec<DescriptionProperty> {
1162 std::mem::take(&mut self.r#description)
1163 }
1164 fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
1165 self.r#disambiguating_description.as_slice()
1166 }
1167 fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
1168 std::mem::take(&mut self.r#disambiguating_description)
1169 }
1170 fn get_identifier(&self) -> &[IdentifierProperty] {
1171 self.r#identifier.as_slice()
1172 }
1173 fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
1174 std::mem::take(&mut self.r#identifier)
1175 }
1176 fn get_image(&self) -> &[ImageProperty] {
1177 self.r#image.as_slice()
1178 }
1179 fn take_image(&mut self) -> Vec<ImageProperty> {
1180 std::mem::take(&mut self.r#image)
1181 }
1182 fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
1183 self.r#main_entity_of_page.as_slice()
1184 }
1185 fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
1186 std::mem::take(&mut self.r#main_entity_of_page)
1187 }
1188 fn get_name(&self) -> &[NameProperty] {
1189 self.r#name.as_slice()
1190 }
1191 fn take_name(&mut self) -> Vec<NameProperty> {
1192 std::mem::take(&mut self.r#name)
1193 }
1194 fn get_potential_action(&self) -> &[PotentialActionProperty] {
1195 self.r#potential_action.as_slice()
1196 }
1197 fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
1198 std::mem::take(&mut self.r#potential_action)
1199 }
1200 fn get_same_as(&self) -> &[SameAsProperty] {
1201 self.r#same_as.as_slice()
1202 }
1203 fn take_same_as(&mut self) -> Vec<SameAsProperty> {
1204 std::mem::take(&mut self.r#same_as)
1205 }
1206 fn get_subject_of(&self) -> &[SubjectOfProperty] {
1207 self.r#subject_of.as_slice()
1208 }
1209 fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
1210 std::mem::take(&mut self.r#subject_of)
1211 }
1212 fn get_url(&self) -> &[UrlProperty] {
1213 self.r#url.as_slice()
1214 }
1215 fn take_url(&mut self) -> Vec<UrlProperty> {
1216 std::mem::take(&mut self.r#url)
1217 }
1218}
1219#[cfg(feature = "serde")]
1220mod serde {
1221 use std::{fmt, fmt::Formatter};
1222
1223 use ::serde::{
1224 de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
1225 };
1226
1227 use super::*;
1228 impl Serialize for Recipe {
1229 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1230 where
1231 S: Serializer,
1232 {
1233 let len: usize = [
1234 !Vec::is_empty(&self.r#cook_time) as usize,
1235 !Vec::is_empty(&self.r#cooking_method) as usize,
1236 !Vec::is_empty(&self.r#ingredients) as usize,
1237 !Vec::is_empty(&self.r#nutrition) as usize,
1238 !Vec::is_empty(&self.r#recipe_category) as usize,
1239 !Vec::is_empty(&self.r#recipe_cuisine) as usize,
1240 !Vec::is_empty(&self.r#recipe_ingredient) as usize,
1241 !Vec::is_empty(&self.r#recipe_instructions) as usize,
1242 !Vec::is_empty(&self.r#recipe_yield) as usize,
1243 !Vec::is_empty(&self.r#suitable_for_diet) as usize,
1244 !Vec::is_empty(&self.r#about) as usize,
1245 !Vec::is_empty(&self.r#abstract) as usize,
1246 !Vec::is_empty(&self.r#access_mode) as usize,
1247 !Vec::is_empty(&self.r#access_mode_sufficient) as usize,
1248 !Vec::is_empty(&self.r#accessibility_api) as usize,
1249 !Vec::is_empty(&self.r#accessibility_control) as usize,
1250 !Vec::is_empty(&self.r#accessibility_feature) as usize,
1251 !Vec::is_empty(&self.r#accessibility_hazard) as usize,
1252 !Vec::is_empty(&self.r#accessibility_summary) as usize,
1253 !Vec::is_empty(&self.r#accountable_person) as usize,
1254 !Vec::is_empty(&self.r#acquire_license_page) as usize,
1255 !Vec::is_empty(&self.r#aggregate_rating) as usize,
1256 !Vec::is_empty(&self.r#alternative_headline) as usize,
1257 !Vec::is_empty(&self.r#archived_at) as usize,
1258 !Vec::is_empty(&self.r#assesses) as usize,
1259 !Vec::is_empty(&self.r#associated_media) as usize,
1260 !Vec::is_empty(&self.r#audience) as usize,
1261 !Vec::is_empty(&self.r#audio) as usize,
1262 !Vec::is_empty(&self.r#author) as usize,
1263 !Vec::is_empty(&self.r#award) as usize,
1264 !Vec::is_empty(&self.r#awards) as usize,
1265 !Vec::is_empty(&self.r#character) as usize,
1266 !Vec::is_empty(&self.r#citation) as usize,
1267 !Vec::is_empty(&self.r#comment) as usize,
1268 !Vec::is_empty(&self.r#comment_count) as usize,
1269 !Vec::is_empty(&self.r#conditions_of_access) as usize,
1270 !Vec::is_empty(&self.r#content_location) as usize,
1271 !Vec::is_empty(&self.r#content_rating) as usize,
1272 !Vec::is_empty(&self.r#content_reference_time) as usize,
1273 !Vec::is_empty(&self.r#contributor) as usize,
1274 !Vec::is_empty(&self.r#copyright_holder) as usize,
1275 !Vec::is_empty(&self.r#copyright_notice) as usize,
1276 !Vec::is_empty(&self.r#copyright_year) as usize,
1277 !Vec::is_empty(&self.r#correction) as usize,
1278 !Vec::is_empty(&self.r#country_of_origin) as usize,
1279 !Vec::is_empty(&self.r#creative_work_status) as usize,
1280 !Vec::is_empty(&self.r#creator) as usize,
1281 !Vec::is_empty(&self.r#credit_text) as usize,
1282 !Vec::is_empty(&self.r#date_created) as usize,
1283 !Vec::is_empty(&self.r#date_modified) as usize,
1284 !Vec::is_empty(&self.r#date_published) as usize,
1285 !Vec::is_empty(&self.r#discussion_url) as usize,
1286 !Vec::is_empty(&self.r#edit_eidr) as usize,
1287 !Vec::is_empty(&self.r#editor) as usize,
1288 !Vec::is_empty(&self.r#educational_alignment) as usize,
1289 !Vec::is_empty(&self.r#educational_level) as usize,
1290 !Vec::is_empty(&self.r#educational_use) as usize,
1291 !Vec::is_empty(&self.r#encoding) as usize,
1292 !Vec::is_empty(&self.r#encoding_format) as usize,
1293 !Vec::is_empty(&self.r#encodings) as usize,
1294 !Vec::is_empty(&self.r#example_of_work) as usize,
1295 !Vec::is_empty(&self.r#expires) as usize,
1296 !Vec::is_empty(&self.r#file_format) as usize,
1297 !Vec::is_empty(&self.r#funder) as usize,
1298 !Vec::is_empty(&self.r#funding) as usize,
1299 !Vec::is_empty(&self.r#genre) as usize,
1300 !Vec::is_empty(&self.r#has_part) as usize,
1301 !Vec::is_empty(&self.r#headline) as usize,
1302 !Vec::is_empty(&self.r#in_language) as usize,
1303 !Vec::is_empty(&self.r#interaction_statistic) as usize,
1304 !Vec::is_empty(&self.r#interactivity_type) as usize,
1305 !Vec::is_empty(&self.r#interpreted_as_claim) as usize,
1306 !Vec::is_empty(&self.r#is_accessible_for_free) as usize,
1307 !Vec::is_empty(&self.r#is_based_on) as usize,
1308 !Vec::is_empty(&self.r#is_based_on_url) as usize,
1309 !Vec::is_empty(&self.r#is_family_friendly) as usize,
1310 !Vec::is_empty(&self.r#is_part_of) as usize,
1311 !Vec::is_empty(&self.r#keywords) as usize,
1312 !Vec::is_empty(&self.r#learning_resource_type) as usize,
1313 !Vec::is_empty(&self.r#license) as usize,
1314 !Vec::is_empty(&self.r#location_created) as usize,
1315 !Vec::is_empty(&self.r#main_entity) as usize,
1316 !Vec::is_empty(&self.r#maintainer) as usize,
1317 !Vec::is_empty(&self.r#material) as usize,
1318 !Vec::is_empty(&self.r#material_extent) as usize,
1319 !Vec::is_empty(&self.r#mentions) as usize,
1320 !Vec::is_empty(&self.r#offers) as usize,
1321 !Vec::is_empty(&self.r#pattern) as usize,
1322 !Vec::is_empty(&self.r#position) as usize,
1323 !Vec::is_empty(&self.r#producer) as usize,
1324 !Vec::is_empty(&self.r#provider) as usize,
1325 !Vec::is_empty(&self.r#publication) as usize,
1326 !Vec::is_empty(&self.r#publisher) as usize,
1327 !Vec::is_empty(&self.r#publisher_imprint) as usize,
1328 !Vec::is_empty(&self.r#publishing_principles) as usize,
1329 !Vec::is_empty(&self.r#recorded_at) as usize,
1330 !Vec::is_empty(&self.r#released_event) as usize,
1331 !Vec::is_empty(&self.r#review) as usize,
1332 !Vec::is_empty(&self.r#reviews) as usize,
1333 !Vec::is_empty(&self.r#schema_version) as usize,
1334 !Vec::is_empty(&self.r#sd_date_published) as usize,
1335 !Vec::is_empty(&self.r#sd_license) as usize,
1336 !Vec::is_empty(&self.r#sd_publisher) as usize,
1337 !Vec::is_empty(&self.r#size) as usize,
1338 !Vec::is_empty(&self.r#source_organization) as usize,
1339 !Vec::is_empty(&self.r#spatial) as usize,
1340 !Vec::is_empty(&self.r#spatial_coverage) as usize,
1341 !Vec::is_empty(&self.r#sponsor) as usize,
1342 !Vec::is_empty(&self.r#teaches) as usize,
1343 !Vec::is_empty(&self.r#temporal) as usize,
1344 !Vec::is_empty(&self.r#temporal_coverage) as usize,
1345 !Vec::is_empty(&self.r#text) as usize,
1346 !Vec::is_empty(&self.r#thumbnail) as usize,
1347 !Vec::is_empty(&self.r#thumbnail_url) as usize,
1348 !Vec::is_empty(&self.r#time_required) as usize,
1349 !Vec::is_empty(&self.r#translation_of_work) as usize,
1350 !Vec::is_empty(&self.r#translator) as usize,
1351 !Vec::is_empty(&self.r#typical_age_range) as usize,
1352 !Vec::is_empty(&self.r#usage_info) as usize,
1353 !Vec::is_empty(&self.r#version) as usize,
1354 !Vec::is_empty(&self.r#video) as usize,
1355 !Vec::is_empty(&self.r#work_example) as usize,
1356 !Vec::is_empty(&self.r#work_translation) as usize,
1357 !Vec::is_empty(&self.r#estimated_cost) as usize,
1358 !Vec::is_empty(&self.r#perform_time) as usize,
1359 !Vec::is_empty(&self.r#prep_time) as usize,
1360 !Vec::is_empty(&self.r#step) as usize,
1361 !Vec::is_empty(&self.r#steps) as usize,
1362 !Vec::is_empty(&self.r#supply) as usize,
1363 !Vec::is_empty(&self.r#tool) as usize,
1364 !Vec::is_empty(&self.r#total_time) as usize,
1365 !Vec::is_empty(&self.r#yield) as usize,
1366 !Vec::is_empty(&self.r#additional_type) as usize,
1367 !Vec::is_empty(&self.r#alternate_name) as usize,
1368 !Vec::is_empty(&self.r#description) as usize,
1369 !Vec::is_empty(&self.r#disambiguating_description) as usize,
1370 !Vec::is_empty(&self.r#identifier) as usize,
1371 !Vec::is_empty(&self.r#image) as usize,
1372 !Vec::is_empty(&self.r#main_entity_of_page) as usize,
1373 !Vec::is_empty(&self.r#name) as usize,
1374 !Vec::is_empty(&self.r#potential_action) as usize,
1375 !Vec::is_empty(&self.r#same_as) as usize,
1376 !Vec::is_empty(&self.r#subject_of) as usize,
1377 !Vec::is_empty(&self.r#url) as usize,
1378 ]
1379 .iter()
1380 .sum();
1381 let mut serialize_struct = Serializer::serialize_struct(serializer, "Recipe", len)?;
1382 if !Vec::is_empty(&self.r#cook_time) {
1383 serialize_struct.serialize_field("cookTime", {
1384 struct SerializeWith<'a>(&'a Vec<CookTimeProperty>);
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#cook_time)
1396 })?;
1397 } else {
1398 serialize_struct.skip_field("cookTime")?;
1399 }
1400 if !Vec::is_empty(&self.r#cooking_method) {
1401 serialize_struct.serialize_field("cookingMethod", {
1402 struct SerializeWith<'a>(&'a Vec<CookingMethodProperty>);
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#cooking_method)
1414 })?;
1415 } else {
1416 serialize_struct.skip_field("cookingMethod")?;
1417 }
1418 if !Vec::is_empty(&self.r#ingredients) {
1419 serialize_struct.serialize_field("ingredients", {
1420 struct SerializeWith<'a>(&'a Vec<IngredientsProperty>);
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#ingredients)
1432 })?;
1433 } else {
1434 serialize_struct.skip_field("ingredients")?;
1435 }
1436 if !Vec::is_empty(&self.r#nutrition) {
1437 serialize_struct.serialize_field("nutrition", {
1438 struct SerializeWith<'a>(&'a Vec<NutritionProperty>);
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#nutrition)
1450 })?;
1451 } else {
1452 serialize_struct.skip_field("nutrition")?;
1453 }
1454 if !Vec::is_empty(&self.r#recipe_category) {
1455 serialize_struct.serialize_field("recipeCategory", {
1456 struct SerializeWith<'a>(&'a Vec<RecipeCategoryProperty>);
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#recipe_category)
1468 })?;
1469 } else {
1470 serialize_struct.skip_field("recipeCategory")?;
1471 }
1472 if !Vec::is_empty(&self.r#recipe_cuisine) {
1473 serialize_struct.serialize_field("recipeCuisine", {
1474 struct SerializeWith<'a>(&'a Vec<RecipeCuisineProperty>);
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#recipe_cuisine)
1486 })?;
1487 } else {
1488 serialize_struct.skip_field("recipeCuisine")?;
1489 }
1490 if !Vec::is_empty(&self.r#recipe_ingredient) {
1491 serialize_struct.serialize_field("recipeIngredient", {
1492 struct SerializeWith<'a>(&'a Vec<RecipeIngredientProperty>);
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#recipe_ingredient)
1504 })?;
1505 } else {
1506 serialize_struct.skip_field("recipeIngredient")?;
1507 }
1508 if !Vec::is_empty(&self.r#recipe_instructions) {
1509 serialize_struct.serialize_field("recipeInstructions", {
1510 struct SerializeWith<'a>(&'a Vec<RecipeInstructionsProperty>);
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#recipe_instructions)
1522 })?;
1523 } else {
1524 serialize_struct.skip_field("recipeInstructions")?;
1525 }
1526 if !Vec::is_empty(&self.r#recipe_yield) {
1527 serialize_struct.serialize_field("recipeYield", {
1528 struct SerializeWith<'a>(&'a Vec<RecipeYieldProperty>);
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#recipe_yield)
1540 })?;
1541 } else {
1542 serialize_struct.skip_field("recipeYield")?;
1543 }
1544 if !Vec::is_empty(&self.r#suitable_for_diet) {
1545 serialize_struct.serialize_field("suitableForDiet", {
1546 struct SerializeWith<'a>(&'a Vec<SuitableForDietProperty>);
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#suitable_for_diet)
1558 })?;
1559 } else {
1560 serialize_struct.skip_field("suitableForDiet")?;
1561 }
1562 if !Vec::is_empty(&self.r#about) {
1563 serialize_struct.serialize_field("about", {
1564 struct SerializeWith<'a>(&'a Vec<AboutProperty>);
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#about)
1576 })?;
1577 } else {
1578 serialize_struct.skip_field("about")?;
1579 }
1580 if !Vec::is_empty(&self.r#abstract) {
1581 serialize_struct.serialize_field("abstract", {
1582 struct SerializeWith<'a>(&'a Vec<AbstractProperty>);
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#abstract)
1594 })?;
1595 } else {
1596 serialize_struct.skip_field("abstract")?;
1597 }
1598 if !Vec::is_empty(&self.r#access_mode) {
1599 serialize_struct.serialize_field("accessMode", {
1600 struct SerializeWith<'a>(&'a Vec<AccessModeProperty>);
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#access_mode)
1612 })?;
1613 } else {
1614 serialize_struct.skip_field("accessMode")?;
1615 }
1616 if !Vec::is_empty(&self.r#access_mode_sufficient) {
1617 serialize_struct.serialize_field("accessModeSufficient", {
1618 struct SerializeWith<'a>(&'a Vec<AccessModeSufficientProperty>);
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#access_mode_sufficient)
1630 })?;
1631 } else {
1632 serialize_struct.skip_field("accessModeSufficient")?;
1633 }
1634 if !Vec::is_empty(&self.r#accessibility_api) {
1635 serialize_struct.serialize_field("accessibilityAPI", {
1636 struct SerializeWith<'a>(&'a Vec<AccessibilityApiProperty>);
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#accessibility_api)
1648 })?;
1649 } else {
1650 serialize_struct.skip_field("accessibilityAPI")?;
1651 }
1652 if !Vec::is_empty(&self.r#accessibility_control) {
1653 serialize_struct.serialize_field("accessibilityControl", {
1654 struct SerializeWith<'a>(&'a Vec<AccessibilityControlProperty>);
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#accessibility_control)
1666 })?;
1667 } else {
1668 serialize_struct.skip_field("accessibilityControl")?;
1669 }
1670 if !Vec::is_empty(&self.r#accessibility_feature) {
1671 serialize_struct.serialize_field("accessibilityFeature", {
1672 struct SerializeWith<'a>(&'a Vec<AccessibilityFeatureProperty>);
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#accessibility_feature)
1684 })?;
1685 } else {
1686 serialize_struct.skip_field("accessibilityFeature")?;
1687 }
1688 if !Vec::is_empty(&self.r#accessibility_hazard) {
1689 serialize_struct.serialize_field("accessibilityHazard", {
1690 struct SerializeWith<'a>(&'a Vec<AccessibilityHazardProperty>);
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#accessibility_hazard)
1702 })?;
1703 } else {
1704 serialize_struct.skip_field("accessibilityHazard")?;
1705 }
1706 if !Vec::is_empty(&self.r#accessibility_summary) {
1707 serialize_struct.serialize_field("accessibilitySummary", {
1708 struct SerializeWith<'a>(&'a Vec<AccessibilitySummaryProperty>);
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#accessibility_summary)
1720 })?;
1721 } else {
1722 serialize_struct.skip_field("accessibilitySummary")?;
1723 }
1724 if !Vec::is_empty(&self.r#accountable_person) {
1725 serialize_struct.serialize_field("accountablePerson", {
1726 struct SerializeWith<'a>(&'a Vec<AccountablePersonProperty>);
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#accountable_person)
1738 })?;
1739 } else {
1740 serialize_struct.skip_field("accountablePerson")?;
1741 }
1742 if !Vec::is_empty(&self.r#acquire_license_page) {
1743 serialize_struct.serialize_field("acquireLicensePage", {
1744 struct SerializeWith<'a>(&'a Vec<AcquireLicensePageProperty>);
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#acquire_license_page)
1756 })?;
1757 } else {
1758 serialize_struct.skip_field("acquireLicensePage")?;
1759 }
1760 if !Vec::is_empty(&self.r#aggregate_rating) {
1761 serialize_struct.serialize_field("aggregateRating", {
1762 struct SerializeWith<'a>(&'a Vec<AggregateRatingProperty>);
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#aggregate_rating)
1774 })?;
1775 } else {
1776 serialize_struct.skip_field("aggregateRating")?;
1777 }
1778 if !Vec::is_empty(&self.r#alternative_headline) {
1779 serialize_struct.serialize_field("alternativeHeadline", {
1780 struct SerializeWith<'a>(&'a Vec<AlternativeHeadlineProperty>);
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#alternative_headline)
1792 })?;
1793 } else {
1794 serialize_struct.skip_field("alternativeHeadline")?;
1795 }
1796 if !Vec::is_empty(&self.r#archived_at) {
1797 serialize_struct.serialize_field("archivedAt", {
1798 struct SerializeWith<'a>(&'a Vec<ArchivedAtProperty>);
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#archived_at)
1810 })?;
1811 } else {
1812 serialize_struct.skip_field("archivedAt")?;
1813 }
1814 if !Vec::is_empty(&self.r#assesses) {
1815 serialize_struct.serialize_field("assesses", {
1816 struct SerializeWith<'a>(&'a Vec<AssessesProperty>);
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#assesses)
1828 })?;
1829 } else {
1830 serialize_struct.skip_field("assesses")?;
1831 }
1832 if !Vec::is_empty(&self.r#associated_media) {
1833 serialize_struct.serialize_field("associatedMedia", {
1834 struct SerializeWith<'a>(&'a Vec<AssociatedMediaProperty>);
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#associated_media)
1846 })?;
1847 } else {
1848 serialize_struct.skip_field("associatedMedia")?;
1849 }
1850 if !Vec::is_empty(&self.r#audience) {
1851 serialize_struct.serialize_field("audience", {
1852 struct SerializeWith<'a>(&'a Vec<AudienceProperty>);
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#audience)
1864 })?;
1865 } else {
1866 serialize_struct.skip_field("audience")?;
1867 }
1868 if !Vec::is_empty(&self.r#audio) {
1869 serialize_struct.serialize_field("audio", {
1870 struct SerializeWith<'a>(&'a Vec<AudioProperty>);
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#audio)
1882 })?;
1883 } else {
1884 serialize_struct.skip_field("audio")?;
1885 }
1886 if !Vec::is_empty(&self.r#author) {
1887 serialize_struct.serialize_field("author", {
1888 struct SerializeWith<'a>(&'a Vec<AuthorProperty>);
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#author)
1900 })?;
1901 } else {
1902 serialize_struct.skip_field("author")?;
1903 }
1904 if !Vec::is_empty(&self.r#award) {
1905 serialize_struct.serialize_field("award", {
1906 struct SerializeWith<'a>(&'a Vec<AwardProperty>);
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#award)
1918 })?;
1919 } else {
1920 serialize_struct.skip_field("award")?;
1921 }
1922 if !Vec::is_empty(&self.r#awards) {
1923 serialize_struct.serialize_field("awards", {
1924 struct SerializeWith<'a>(&'a Vec<AwardsProperty>);
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#awards)
1936 })?;
1937 } else {
1938 serialize_struct.skip_field("awards")?;
1939 }
1940 if !Vec::is_empty(&self.r#character) {
1941 serialize_struct.serialize_field("character", {
1942 struct SerializeWith<'a>(&'a Vec<CharacterProperty>);
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#character)
1954 })?;
1955 } else {
1956 serialize_struct.skip_field("character")?;
1957 }
1958 if !Vec::is_empty(&self.r#citation) {
1959 serialize_struct.serialize_field("citation", {
1960 struct SerializeWith<'a>(&'a Vec<CitationProperty>);
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#citation)
1972 })?;
1973 } else {
1974 serialize_struct.skip_field("citation")?;
1975 }
1976 if !Vec::is_empty(&self.r#comment) {
1977 serialize_struct.serialize_field("comment", {
1978 struct SerializeWith<'a>(&'a Vec<CommentProperty>);
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#comment)
1990 })?;
1991 } else {
1992 serialize_struct.skip_field("comment")?;
1993 }
1994 if !Vec::is_empty(&self.r#comment_count) {
1995 serialize_struct.serialize_field("commentCount", {
1996 struct SerializeWith<'a>(&'a Vec<CommentCountProperty>);
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#comment_count)
2008 })?;
2009 } else {
2010 serialize_struct.skip_field("commentCount")?;
2011 }
2012 if !Vec::is_empty(&self.r#conditions_of_access) {
2013 serialize_struct.serialize_field("conditionsOfAccess", {
2014 struct SerializeWith<'a>(&'a Vec<ConditionsOfAccessProperty>);
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#conditions_of_access)
2026 })?;
2027 } else {
2028 serialize_struct.skip_field("conditionsOfAccess")?;
2029 }
2030 if !Vec::is_empty(&self.r#content_location) {
2031 serialize_struct.serialize_field("contentLocation", {
2032 struct SerializeWith<'a>(&'a Vec<ContentLocationProperty>);
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#content_location)
2044 })?;
2045 } else {
2046 serialize_struct.skip_field("contentLocation")?;
2047 }
2048 if !Vec::is_empty(&self.r#content_rating) {
2049 serialize_struct.serialize_field("contentRating", {
2050 struct SerializeWith<'a>(&'a Vec<ContentRatingProperty>);
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#content_rating)
2062 })?;
2063 } else {
2064 serialize_struct.skip_field("contentRating")?;
2065 }
2066 if !Vec::is_empty(&self.r#content_reference_time) {
2067 serialize_struct.serialize_field("contentReferenceTime", {
2068 struct SerializeWith<'a>(&'a Vec<ContentReferenceTimeProperty>);
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#content_reference_time)
2080 })?;
2081 } else {
2082 serialize_struct.skip_field("contentReferenceTime")?;
2083 }
2084 if !Vec::is_empty(&self.r#contributor) {
2085 serialize_struct.serialize_field("contributor", {
2086 struct SerializeWith<'a>(&'a Vec<ContributorProperty>);
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#contributor)
2098 })?;
2099 } else {
2100 serialize_struct.skip_field("contributor")?;
2101 }
2102 if !Vec::is_empty(&self.r#copyright_holder) {
2103 serialize_struct.serialize_field("copyrightHolder", {
2104 struct SerializeWith<'a>(&'a Vec<CopyrightHolderProperty>);
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#copyright_holder)
2116 })?;
2117 } else {
2118 serialize_struct.skip_field("copyrightHolder")?;
2119 }
2120 if !Vec::is_empty(&self.r#copyright_notice) {
2121 serialize_struct.serialize_field("copyrightNotice", {
2122 struct SerializeWith<'a>(&'a Vec<CopyrightNoticeProperty>);
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#copyright_notice)
2134 })?;
2135 } else {
2136 serialize_struct.skip_field("copyrightNotice")?;
2137 }
2138 if !Vec::is_empty(&self.r#copyright_year) {
2139 serialize_struct.serialize_field("copyrightYear", {
2140 struct SerializeWith<'a>(&'a Vec<CopyrightYearProperty>);
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#copyright_year)
2152 })?;
2153 } else {
2154 serialize_struct.skip_field("copyrightYear")?;
2155 }
2156 if !Vec::is_empty(&self.r#correction) {
2157 serialize_struct.serialize_field("correction", {
2158 struct SerializeWith<'a>(&'a Vec<CorrectionProperty>);
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#correction)
2170 })?;
2171 } else {
2172 serialize_struct.skip_field("correction")?;
2173 }
2174 if !Vec::is_empty(&self.r#country_of_origin) {
2175 serialize_struct.serialize_field("countryOfOrigin", {
2176 struct SerializeWith<'a>(&'a Vec<CountryOfOriginProperty>);
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#country_of_origin)
2188 })?;
2189 } else {
2190 serialize_struct.skip_field("countryOfOrigin")?;
2191 }
2192 if !Vec::is_empty(&self.r#creative_work_status) {
2193 serialize_struct.serialize_field("creativeWorkStatus", {
2194 struct SerializeWith<'a>(&'a Vec<CreativeWorkStatusProperty>);
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#creative_work_status)
2206 })?;
2207 } else {
2208 serialize_struct.skip_field("creativeWorkStatus")?;
2209 }
2210 if !Vec::is_empty(&self.r#creator) {
2211 serialize_struct.serialize_field("creator", {
2212 struct SerializeWith<'a>(&'a Vec<CreatorProperty>);
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#creator)
2224 })?;
2225 } else {
2226 serialize_struct.skip_field("creator")?;
2227 }
2228 if !Vec::is_empty(&self.r#credit_text) {
2229 serialize_struct.serialize_field("creditText", {
2230 struct SerializeWith<'a>(&'a Vec<CreditTextProperty>);
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#credit_text)
2242 })?;
2243 } else {
2244 serialize_struct.skip_field("creditText")?;
2245 }
2246 if !Vec::is_empty(&self.r#date_created) {
2247 serialize_struct.serialize_field("dateCreated", {
2248 struct SerializeWith<'a>(&'a Vec<DateCreatedProperty>);
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#date_created)
2260 })?;
2261 } else {
2262 serialize_struct.skip_field("dateCreated")?;
2263 }
2264 if !Vec::is_empty(&self.r#date_modified) {
2265 serialize_struct.serialize_field("dateModified", {
2266 struct SerializeWith<'a>(&'a Vec<DateModifiedProperty>);
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#date_modified)
2278 })?;
2279 } else {
2280 serialize_struct.skip_field("dateModified")?;
2281 }
2282 if !Vec::is_empty(&self.r#date_published) {
2283 serialize_struct.serialize_field("datePublished", {
2284 struct SerializeWith<'a>(&'a Vec<DatePublishedProperty>);
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#date_published)
2296 })?;
2297 } else {
2298 serialize_struct.skip_field("datePublished")?;
2299 }
2300 if !Vec::is_empty(&self.r#discussion_url) {
2301 serialize_struct.serialize_field("discussionUrl", {
2302 struct SerializeWith<'a>(&'a Vec<DiscussionUrlProperty>);
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#discussion_url)
2314 })?;
2315 } else {
2316 serialize_struct.skip_field("discussionUrl")?;
2317 }
2318 if !Vec::is_empty(&self.r#edit_eidr) {
2319 serialize_struct.serialize_field("editEIDR", {
2320 struct SerializeWith<'a>(&'a Vec<EditEidrProperty>);
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#edit_eidr)
2332 })?;
2333 } else {
2334 serialize_struct.skip_field("editEIDR")?;
2335 }
2336 if !Vec::is_empty(&self.r#editor) {
2337 serialize_struct.serialize_field("editor", {
2338 struct SerializeWith<'a>(&'a Vec<EditorProperty>);
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#editor)
2350 })?;
2351 } else {
2352 serialize_struct.skip_field("editor")?;
2353 }
2354 if !Vec::is_empty(&self.r#educational_alignment) {
2355 serialize_struct.serialize_field("educationalAlignment", {
2356 struct SerializeWith<'a>(&'a Vec<EducationalAlignmentProperty>);
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#educational_alignment)
2368 })?;
2369 } else {
2370 serialize_struct.skip_field("educationalAlignment")?;
2371 }
2372 if !Vec::is_empty(&self.r#educational_level) {
2373 serialize_struct.serialize_field("educationalLevel", {
2374 struct SerializeWith<'a>(&'a Vec<EducationalLevelProperty>);
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#educational_level)
2386 })?;
2387 } else {
2388 serialize_struct.skip_field("educationalLevel")?;
2389 }
2390 if !Vec::is_empty(&self.r#educational_use) {
2391 serialize_struct.serialize_field("educationalUse", {
2392 struct SerializeWith<'a>(&'a Vec<EducationalUseProperty>);
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#educational_use)
2404 })?;
2405 } else {
2406 serialize_struct.skip_field("educationalUse")?;
2407 }
2408 if !Vec::is_empty(&self.r#encoding) {
2409 serialize_struct.serialize_field("encoding", {
2410 struct SerializeWith<'a>(&'a Vec<EncodingProperty>);
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#encoding)
2422 })?;
2423 } else {
2424 serialize_struct.skip_field("encoding")?;
2425 }
2426 if !Vec::is_empty(&self.r#encoding_format) {
2427 serialize_struct.serialize_field("encodingFormat", {
2428 struct SerializeWith<'a>(&'a Vec<EncodingFormatProperty>);
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#encoding_format)
2440 })?;
2441 } else {
2442 serialize_struct.skip_field("encodingFormat")?;
2443 }
2444 if !Vec::is_empty(&self.r#encodings) {
2445 serialize_struct.serialize_field("encodings", {
2446 struct SerializeWith<'a>(&'a Vec<EncodingsProperty>);
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#encodings)
2458 })?;
2459 } else {
2460 serialize_struct.skip_field("encodings")?;
2461 }
2462 if !Vec::is_empty(&self.r#example_of_work) {
2463 serialize_struct.serialize_field("exampleOfWork", {
2464 struct SerializeWith<'a>(&'a Vec<ExampleOfWorkProperty>);
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#example_of_work)
2476 })?;
2477 } else {
2478 serialize_struct.skip_field("exampleOfWork")?;
2479 }
2480 if !Vec::is_empty(&self.r#expires) {
2481 serialize_struct.serialize_field("expires", {
2482 struct SerializeWith<'a>(&'a Vec<ExpiresProperty>);
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#expires)
2494 })?;
2495 } else {
2496 serialize_struct.skip_field("expires")?;
2497 }
2498 if !Vec::is_empty(&self.r#file_format) {
2499 serialize_struct.serialize_field("fileFormat", {
2500 struct SerializeWith<'a>(&'a Vec<FileFormatProperty>);
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#file_format)
2512 })?;
2513 } else {
2514 serialize_struct.skip_field("fileFormat")?;
2515 }
2516 if !Vec::is_empty(&self.r#funder) {
2517 serialize_struct.serialize_field("funder", {
2518 struct SerializeWith<'a>(&'a Vec<FunderProperty>);
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#funder)
2530 })?;
2531 } else {
2532 serialize_struct.skip_field("funder")?;
2533 }
2534 if !Vec::is_empty(&self.r#funding) {
2535 serialize_struct.serialize_field("funding", {
2536 struct SerializeWith<'a>(&'a Vec<FundingProperty>);
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#funding)
2548 })?;
2549 } else {
2550 serialize_struct.skip_field("funding")?;
2551 }
2552 if !Vec::is_empty(&self.r#genre) {
2553 serialize_struct.serialize_field("genre", {
2554 struct SerializeWith<'a>(&'a Vec<GenreProperty>);
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#genre)
2566 })?;
2567 } else {
2568 serialize_struct.skip_field("genre")?;
2569 }
2570 if !Vec::is_empty(&self.r#has_part) {
2571 serialize_struct.serialize_field("hasPart", {
2572 struct SerializeWith<'a>(&'a Vec<HasPartProperty>);
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#has_part)
2584 })?;
2585 } else {
2586 serialize_struct.skip_field("hasPart")?;
2587 }
2588 if !Vec::is_empty(&self.r#headline) {
2589 serialize_struct.serialize_field("headline", {
2590 struct SerializeWith<'a>(&'a Vec<HeadlineProperty>);
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#headline)
2602 })?;
2603 } else {
2604 serialize_struct.skip_field("headline")?;
2605 }
2606 if !Vec::is_empty(&self.r#in_language) {
2607 serialize_struct.serialize_field("inLanguage", {
2608 struct SerializeWith<'a>(&'a Vec<InLanguageProperty>);
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#in_language)
2620 })?;
2621 } else {
2622 serialize_struct.skip_field("inLanguage")?;
2623 }
2624 if !Vec::is_empty(&self.r#interaction_statistic) {
2625 serialize_struct.serialize_field("interactionStatistic", {
2626 struct SerializeWith<'a>(&'a Vec<InteractionStatisticProperty>);
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#interaction_statistic)
2638 })?;
2639 } else {
2640 serialize_struct.skip_field("interactionStatistic")?;
2641 }
2642 if !Vec::is_empty(&self.r#interactivity_type) {
2643 serialize_struct.serialize_field("interactivityType", {
2644 struct SerializeWith<'a>(&'a Vec<InteractivityTypeProperty>);
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#interactivity_type)
2656 })?;
2657 } else {
2658 serialize_struct.skip_field("interactivityType")?;
2659 }
2660 if !Vec::is_empty(&self.r#interpreted_as_claim) {
2661 serialize_struct.serialize_field("interpretedAsClaim", {
2662 struct SerializeWith<'a>(&'a Vec<InterpretedAsClaimProperty>);
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#interpreted_as_claim)
2674 })?;
2675 } else {
2676 serialize_struct.skip_field("interpretedAsClaim")?;
2677 }
2678 if !Vec::is_empty(&self.r#is_accessible_for_free) {
2679 serialize_struct.serialize_field("isAccessibleForFree", {
2680 struct SerializeWith<'a>(&'a Vec<IsAccessibleForFreeProperty>);
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#is_accessible_for_free)
2692 })?;
2693 } else {
2694 serialize_struct.skip_field("isAccessibleForFree")?;
2695 }
2696 if !Vec::is_empty(&self.r#is_based_on) {
2697 serialize_struct.serialize_field("isBasedOn", {
2698 struct SerializeWith<'a>(&'a Vec<IsBasedOnProperty>);
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#is_based_on)
2710 })?;
2711 } else {
2712 serialize_struct.skip_field("isBasedOn")?;
2713 }
2714 if !Vec::is_empty(&self.r#is_based_on_url) {
2715 serialize_struct.serialize_field("isBasedOnUrl", {
2716 struct SerializeWith<'a>(&'a Vec<IsBasedOnUrlProperty>);
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#is_based_on_url)
2728 })?;
2729 } else {
2730 serialize_struct.skip_field("isBasedOnUrl")?;
2731 }
2732 if !Vec::is_empty(&self.r#is_family_friendly) {
2733 serialize_struct.serialize_field("isFamilyFriendly", {
2734 struct SerializeWith<'a>(&'a Vec<IsFamilyFriendlyProperty>);
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#is_family_friendly)
2746 })?;
2747 } else {
2748 serialize_struct.skip_field("isFamilyFriendly")?;
2749 }
2750 if !Vec::is_empty(&self.r#is_part_of) {
2751 serialize_struct.serialize_field("isPartOf", {
2752 struct SerializeWith<'a>(&'a Vec<IsPartOfProperty>);
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#is_part_of)
2764 })?;
2765 } else {
2766 serialize_struct.skip_field("isPartOf")?;
2767 }
2768 if !Vec::is_empty(&self.r#keywords) {
2769 serialize_struct.serialize_field("keywords", {
2770 struct SerializeWith<'a>(&'a Vec<KeywordsProperty>);
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#keywords)
2782 })?;
2783 } else {
2784 serialize_struct.skip_field("keywords")?;
2785 }
2786 if !Vec::is_empty(&self.r#learning_resource_type) {
2787 serialize_struct.serialize_field("learningResourceType", {
2788 struct SerializeWith<'a>(&'a Vec<LearningResourceTypeProperty>);
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#learning_resource_type)
2800 })?;
2801 } else {
2802 serialize_struct.skip_field("learningResourceType")?;
2803 }
2804 if !Vec::is_empty(&self.r#license) {
2805 serialize_struct.serialize_field("license", {
2806 struct SerializeWith<'a>(&'a Vec<LicenseProperty>);
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#license)
2818 })?;
2819 } else {
2820 serialize_struct.skip_field("license")?;
2821 }
2822 if !Vec::is_empty(&self.r#location_created) {
2823 serialize_struct.serialize_field("locationCreated", {
2824 struct SerializeWith<'a>(&'a Vec<LocationCreatedProperty>);
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#location_created)
2836 })?;
2837 } else {
2838 serialize_struct.skip_field("locationCreated")?;
2839 }
2840 if !Vec::is_empty(&self.r#main_entity) {
2841 serialize_struct.serialize_field("mainEntity", {
2842 struct SerializeWith<'a>(&'a Vec<MainEntityProperty>);
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#main_entity)
2854 })?;
2855 } else {
2856 serialize_struct.skip_field("mainEntity")?;
2857 }
2858 if !Vec::is_empty(&self.r#maintainer) {
2859 serialize_struct.serialize_field("maintainer", {
2860 struct SerializeWith<'a>(&'a Vec<MaintainerProperty>);
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#maintainer)
2872 })?;
2873 } else {
2874 serialize_struct.skip_field("maintainer")?;
2875 }
2876 if !Vec::is_empty(&self.r#material) {
2877 serialize_struct.serialize_field("material", {
2878 struct SerializeWith<'a>(&'a Vec<MaterialProperty>);
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#material)
2890 })?;
2891 } else {
2892 serialize_struct.skip_field("material")?;
2893 }
2894 if !Vec::is_empty(&self.r#material_extent) {
2895 serialize_struct.serialize_field("materialExtent", {
2896 struct SerializeWith<'a>(&'a Vec<MaterialExtentProperty>);
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#material_extent)
2908 })?;
2909 } else {
2910 serialize_struct.skip_field("materialExtent")?;
2911 }
2912 if !Vec::is_empty(&self.r#mentions) {
2913 serialize_struct.serialize_field("mentions", {
2914 struct SerializeWith<'a>(&'a Vec<MentionsProperty>);
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#mentions)
2926 })?;
2927 } else {
2928 serialize_struct.skip_field("mentions")?;
2929 }
2930 if !Vec::is_empty(&self.r#offers) {
2931 serialize_struct.serialize_field("offers", {
2932 struct SerializeWith<'a>(&'a Vec<OffersProperty>);
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#offers)
2944 })?;
2945 } else {
2946 serialize_struct.skip_field("offers")?;
2947 }
2948 if !Vec::is_empty(&self.r#pattern) {
2949 serialize_struct.serialize_field("pattern", {
2950 struct SerializeWith<'a>(&'a Vec<PatternProperty>);
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#pattern)
2962 })?;
2963 } else {
2964 serialize_struct.skip_field("pattern")?;
2965 }
2966 if !Vec::is_empty(&self.r#position) {
2967 serialize_struct.serialize_field("position", {
2968 struct SerializeWith<'a>(&'a Vec<PositionProperty>);
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#position)
2980 })?;
2981 } else {
2982 serialize_struct.skip_field("position")?;
2983 }
2984 if !Vec::is_empty(&self.r#producer) {
2985 serialize_struct.serialize_field("producer", {
2986 struct SerializeWith<'a>(&'a Vec<ProducerProperty>);
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#producer)
2998 })?;
2999 } else {
3000 serialize_struct.skip_field("producer")?;
3001 }
3002 if !Vec::is_empty(&self.r#provider) {
3003 serialize_struct.serialize_field("provider", {
3004 struct SerializeWith<'a>(&'a Vec<ProviderProperty>);
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#provider)
3016 })?;
3017 } else {
3018 serialize_struct.skip_field("provider")?;
3019 }
3020 if !Vec::is_empty(&self.r#publication) {
3021 serialize_struct.serialize_field("publication", {
3022 struct SerializeWith<'a>(&'a Vec<PublicationProperty>);
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#publication)
3034 })?;
3035 } else {
3036 serialize_struct.skip_field("publication")?;
3037 }
3038 if !Vec::is_empty(&self.r#publisher) {
3039 serialize_struct.serialize_field("publisher", {
3040 struct SerializeWith<'a>(&'a Vec<PublisherProperty>);
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#publisher)
3052 })?;
3053 } else {
3054 serialize_struct.skip_field("publisher")?;
3055 }
3056 if !Vec::is_empty(&self.r#publisher_imprint) {
3057 serialize_struct.serialize_field("publisherImprint", {
3058 struct SerializeWith<'a>(&'a Vec<PublisherImprintProperty>);
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#publisher_imprint)
3070 })?;
3071 } else {
3072 serialize_struct.skip_field("publisherImprint")?;
3073 }
3074 if !Vec::is_empty(&self.r#publishing_principles) {
3075 serialize_struct.serialize_field("publishingPrinciples", {
3076 struct SerializeWith<'a>(&'a Vec<PublishingPrinciplesProperty>);
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#publishing_principles)
3088 })?;
3089 } else {
3090 serialize_struct.skip_field("publishingPrinciples")?;
3091 }
3092 if !Vec::is_empty(&self.r#recorded_at) {
3093 serialize_struct.serialize_field("recordedAt", {
3094 struct SerializeWith<'a>(&'a Vec<RecordedAtProperty>);
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#recorded_at)
3106 })?;
3107 } else {
3108 serialize_struct.skip_field("recordedAt")?;
3109 }
3110 if !Vec::is_empty(&self.r#released_event) {
3111 serialize_struct.serialize_field("releasedEvent", {
3112 struct SerializeWith<'a>(&'a Vec<ReleasedEventProperty>);
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#released_event)
3124 })?;
3125 } else {
3126 serialize_struct.skip_field("releasedEvent")?;
3127 }
3128 if !Vec::is_empty(&self.r#review) {
3129 serialize_struct.serialize_field("review", {
3130 struct SerializeWith<'a>(&'a Vec<ReviewProperty>);
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#review)
3142 })?;
3143 } else {
3144 serialize_struct.skip_field("review")?;
3145 }
3146 if !Vec::is_empty(&self.r#reviews) {
3147 serialize_struct.serialize_field("reviews", {
3148 struct SerializeWith<'a>(&'a Vec<ReviewsProperty>);
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#reviews)
3160 })?;
3161 } else {
3162 serialize_struct.skip_field("reviews")?;
3163 }
3164 if !Vec::is_empty(&self.r#schema_version) {
3165 serialize_struct.serialize_field("schemaVersion", {
3166 struct SerializeWith<'a>(&'a Vec<SchemaVersionProperty>);
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#schema_version)
3178 })?;
3179 } else {
3180 serialize_struct.skip_field("schemaVersion")?;
3181 }
3182 if !Vec::is_empty(&self.r#sd_date_published) {
3183 serialize_struct.serialize_field("sdDatePublished", {
3184 struct SerializeWith<'a>(&'a Vec<SdDatePublishedProperty>);
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#sd_date_published)
3196 })?;
3197 } else {
3198 serialize_struct.skip_field("sdDatePublished")?;
3199 }
3200 if !Vec::is_empty(&self.r#sd_license) {
3201 serialize_struct.serialize_field("sdLicense", {
3202 struct SerializeWith<'a>(&'a Vec<SdLicenseProperty>);
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#sd_license)
3214 })?;
3215 } else {
3216 serialize_struct.skip_field("sdLicense")?;
3217 }
3218 if !Vec::is_empty(&self.r#sd_publisher) {
3219 serialize_struct.serialize_field("sdPublisher", {
3220 struct SerializeWith<'a>(&'a Vec<SdPublisherProperty>);
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#sd_publisher)
3232 })?;
3233 } else {
3234 serialize_struct.skip_field("sdPublisher")?;
3235 }
3236 if !Vec::is_empty(&self.r#size) {
3237 serialize_struct.serialize_field("size", {
3238 struct SerializeWith<'a>(&'a Vec<SizeProperty>);
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#size)
3250 })?;
3251 } else {
3252 serialize_struct.skip_field("size")?;
3253 }
3254 if !Vec::is_empty(&self.r#source_organization) {
3255 serialize_struct.serialize_field("sourceOrganization", {
3256 struct SerializeWith<'a>(&'a Vec<SourceOrganizationProperty>);
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#source_organization)
3268 })?;
3269 } else {
3270 serialize_struct.skip_field("sourceOrganization")?;
3271 }
3272 if !Vec::is_empty(&self.r#spatial) {
3273 serialize_struct.serialize_field("spatial", {
3274 struct SerializeWith<'a>(&'a Vec<SpatialProperty>);
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#spatial)
3286 })?;
3287 } else {
3288 serialize_struct.skip_field("spatial")?;
3289 }
3290 if !Vec::is_empty(&self.r#spatial_coverage) {
3291 serialize_struct.serialize_field("spatialCoverage", {
3292 struct SerializeWith<'a>(&'a Vec<SpatialCoverageProperty>);
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#spatial_coverage)
3304 })?;
3305 } else {
3306 serialize_struct.skip_field("spatialCoverage")?;
3307 }
3308 if !Vec::is_empty(&self.r#sponsor) {
3309 serialize_struct.serialize_field("sponsor", {
3310 struct SerializeWith<'a>(&'a Vec<SponsorProperty>);
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#sponsor)
3322 })?;
3323 } else {
3324 serialize_struct.skip_field("sponsor")?;
3325 }
3326 if !Vec::is_empty(&self.r#teaches) {
3327 serialize_struct.serialize_field("teaches", {
3328 struct SerializeWith<'a>(&'a Vec<TeachesProperty>);
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#teaches)
3340 })?;
3341 } else {
3342 serialize_struct.skip_field("teaches")?;
3343 }
3344 if !Vec::is_empty(&self.r#temporal) {
3345 serialize_struct.serialize_field("temporal", {
3346 struct SerializeWith<'a>(&'a Vec<TemporalProperty>);
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#temporal)
3358 })?;
3359 } else {
3360 serialize_struct.skip_field("temporal")?;
3361 }
3362 if !Vec::is_empty(&self.r#temporal_coverage) {
3363 serialize_struct.serialize_field("temporalCoverage", {
3364 struct SerializeWith<'a>(&'a Vec<TemporalCoverageProperty>);
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#temporal_coverage)
3376 })?;
3377 } else {
3378 serialize_struct.skip_field("temporalCoverage")?;
3379 }
3380 if !Vec::is_empty(&self.r#text) {
3381 serialize_struct.serialize_field("text", {
3382 struct SerializeWith<'a>(&'a Vec<TextProperty>);
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#text)
3394 })?;
3395 } else {
3396 serialize_struct.skip_field("text")?;
3397 }
3398 if !Vec::is_empty(&self.r#thumbnail) {
3399 serialize_struct.serialize_field("thumbnail", {
3400 struct SerializeWith<'a>(&'a Vec<ThumbnailProperty>);
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#thumbnail)
3412 })?;
3413 } else {
3414 serialize_struct.skip_field("thumbnail")?;
3415 }
3416 if !Vec::is_empty(&self.r#thumbnail_url) {
3417 serialize_struct.serialize_field("thumbnailUrl", {
3418 struct SerializeWith<'a>(&'a Vec<ThumbnailUrlProperty>);
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#thumbnail_url)
3430 })?;
3431 } else {
3432 serialize_struct.skip_field("thumbnailUrl")?;
3433 }
3434 if !Vec::is_empty(&self.r#time_required) {
3435 serialize_struct.serialize_field("timeRequired", {
3436 struct SerializeWith<'a>(&'a Vec<TimeRequiredProperty>);
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#time_required)
3448 })?;
3449 } else {
3450 serialize_struct.skip_field("timeRequired")?;
3451 }
3452 if !Vec::is_empty(&self.r#translation_of_work) {
3453 serialize_struct.serialize_field("translationOfWork", {
3454 struct SerializeWith<'a>(&'a Vec<TranslationOfWorkProperty>);
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#translation_of_work)
3466 })?;
3467 } else {
3468 serialize_struct.skip_field("translationOfWork")?;
3469 }
3470 if !Vec::is_empty(&self.r#translator) {
3471 serialize_struct.serialize_field("translator", {
3472 struct SerializeWith<'a>(&'a Vec<TranslatorProperty>);
3473 impl<'a> Serialize for SerializeWith<'a> {
3474 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3475 where
3476 S: Serializer,
3477 {
3478 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3479 self.0, serializer,
3480 )
3481 }
3482 }
3483 &SerializeWith(&self.r#translator)
3484 })?;
3485 } else {
3486 serialize_struct.skip_field("translator")?;
3487 }
3488 if !Vec::is_empty(&self.r#typical_age_range) {
3489 serialize_struct.serialize_field("typicalAgeRange", {
3490 struct SerializeWith<'a>(&'a Vec<TypicalAgeRangeProperty>);
3491 impl<'a> Serialize for SerializeWith<'a> {
3492 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3493 where
3494 S: Serializer,
3495 {
3496 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3497 self.0, serializer,
3498 )
3499 }
3500 }
3501 &SerializeWith(&self.r#typical_age_range)
3502 })?;
3503 } else {
3504 serialize_struct.skip_field("typicalAgeRange")?;
3505 }
3506 if !Vec::is_empty(&self.r#usage_info) {
3507 serialize_struct.serialize_field("usageInfo", {
3508 struct SerializeWith<'a>(&'a Vec<UsageInfoProperty>);
3509 impl<'a> Serialize for SerializeWith<'a> {
3510 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3511 where
3512 S: Serializer,
3513 {
3514 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3515 self.0, serializer,
3516 )
3517 }
3518 }
3519 &SerializeWith(&self.r#usage_info)
3520 })?;
3521 } else {
3522 serialize_struct.skip_field("usageInfo")?;
3523 }
3524 if !Vec::is_empty(&self.r#version) {
3525 serialize_struct.serialize_field("version", {
3526 struct SerializeWith<'a>(&'a Vec<VersionProperty>);
3527 impl<'a> Serialize for SerializeWith<'a> {
3528 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3529 where
3530 S: Serializer,
3531 {
3532 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3533 self.0, serializer,
3534 )
3535 }
3536 }
3537 &SerializeWith(&self.r#version)
3538 })?;
3539 } else {
3540 serialize_struct.skip_field("version")?;
3541 }
3542 if !Vec::is_empty(&self.r#video) {
3543 serialize_struct.serialize_field("video", {
3544 struct SerializeWith<'a>(&'a Vec<VideoProperty>);
3545 impl<'a> Serialize for SerializeWith<'a> {
3546 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3547 where
3548 S: Serializer,
3549 {
3550 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3551 self.0, serializer,
3552 )
3553 }
3554 }
3555 &SerializeWith(&self.r#video)
3556 })?;
3557 } else {
3558 serialize_struct.skip_field("video")?;
3559 }
3560 if !Vec::is_empty(&self.r#work_example) {
3561 serialize_struct.serialize_field("workExample", {
3562 struct SerializeWith<'a>(&'a Vec<WorkExampleProperty>);
3563 impl<'a> Serialize for SerializeWith<'a> {
3564 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3565 where
3566 S: Serializer,
3567 {
3568 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3569 self.0, serializer,
3570 )
3571 }
3572 }
3573 &SerializeWith(&self.r#work_example)
3574 })?;
3575 } else {
3576 serialize_struct.skip_field("workExample")?;
3577 }
3578 if !Vec::is_empty(&self.r#work_translation) {
3579 serialize_struct.serialize_field("workTranslation", {
3580 struct SerializeWith<'a>(&'a Vec<WorkTranslationProperty>);
3581 impl<'a> Serialize for SerializeWith<'a> {
3582 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3583 where
3584 S: Serializer,
3585 {
3586 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3587 self.0, serializer,
3588 )
3589 }
3590 }
3591 &SerializeWith(&self.r#work_translation)
3592 })?;
3593 } else {
3594 serialize_struct.skip_field("workTranslation")?;
3595 }
3596 if !Vec::is_empty(&self.r#estimated_cost) {
3597 serialize_struct.serialize_field("estimatedCost", {
3598 struct SerializeWith<'a>(&'a Vec<EstimatedCostProperty>);
3599 impl<'a> Serialize for SerializeWith<'a> {
3600 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3601 where
3602 S: Serializer,
3603 {
3604 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3605 self.0, serializer,
3606 )
3607 }
3608 }
3609 &SerializeWith(&self.r#estimated_cost)
3610 })?;
3611 } else {
3612 serialize_struct.skip_field("estimatedCost")?;
3613 }
3614 if !Vec::is_empty(&self.r#perform_time) {
3615 serialize_struct.serialize_field("performTime", {
3616 struct SerializeWith<'a>(&'a Vec<PerformTimeProperty>);
3617 impl<'a> Serialize for SerializeWith<'a> {
3618 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3619 where
3620 S: Serializer,
3621 {
3622 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3623 self.0, serializer,
3624 )
3625 }
3626 }
3627 &SerializeWith(&self.r#perform_time)
3628 })?;
3629 } else {
3630 serialize_struct.skip_field("performTime")?;
3631 }
3632 if !Vec::is_empty(&self.r#prep_time) {
3633 serialize_struct.serialize_field("prepTime", {
3634 struct SerializeWith<'a>(&'a Vec<PrepTimeProperty>);
3635 impl<'a> Serialize for SerializeWith<'a> {
3636 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3637 where
3638 S: Serializer,
3639 {
3640 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3641 self.0, serializer,
3642 )
3643 }
3644 }
3645 &SerializeWith(&self.r#prep_time)
3646 })?;
3647 } else {
3648 serialize_struct.skip_field("prepTime")?;
3649 }
3650 if !Vec::is_empty(&self.r#step) {
3651 serialize_struct.serialize_field("step", {
3652 struct SerializeWith<'a>(&'a Vec<StepProperty>);
3653 impl<'a> Serialize for SerializeWith<'a> {
3654 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3655 where
3656 S: Serializer,
3657 {
3658 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3659 self.0, serializer,
3660 )
3661 }
3662 }
3663 &SerializeWith(&self.r#step)
3664 })?;
3665 } else {
3666 serialize_struct.skip_field("step")?;
3667 }
3668 if !Vec::is_empty(&self.r#steps) {
3669 serialize_struct.serialize_field("steps", {
3670 struct SerializeWith<'a>(&'a Vec<StepsProperty>);
3671 impl<'a> Serialize for SerializeWith<'a> {
3672 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3673 where
3674 S: Serializer,
3675 {
3676 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3677 self.0, serializer,
3678 )
3679 }
3680 }
3681 &SerializeWith(&self.r#steps)
3682 })?;
3683 } else {
3684 serialize_struct.skip_field("steps")?;
3685 }
3686 if !Vec::is_empty(&self.r#supply) {
3687 serialize_struct.serialize_field("supply", {
3688 struct SerializeWith<'a>(&'a Vec<SupplyProperty>);
3689 impl<'a> Serialize for SerializeWith<'a> {
3690 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3691 where
3692 S: Serializer,
3693 {
3694 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3695 self.0, serializer,
3696 )
3697 }
3698 }
3699 &SerializeWith(&self.r#supply)
3700 })?;
3701 } else {
3702 serialize_struct.skip_field("supply")?;
3703 }
3704 if !Vec::is_empty(&self.r#tool) {
3705 serialize_struct.serialize_field("tool", {
3706 struct SerializeWith<'a>(&'a Vec<ToolProperty>);
3707 impl<'a> Serialize for SerializeWith<'a> {
3708 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3709 where
3710 S: Serializer,
3711 {
3712 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3713 self.0, serializer,
3714 )
3715 }
3716 }
3717 &SerializeWith(&self.r#tool)
3718 })?;
3719 } else {
3720 serialize_struct.skip_field("tool")?;
3721 }
3722 if !Vec::is_empty(&self.r#total_time) {
3723 serialize_struct.serialize_field("totalTime", {
3724 struct SerializeWith<'a>(&'a Vec<TotalTimeProperty>);
3725 impl<'a> Serialize for SerializeWith<'a> {
3726 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3727 where
3728 S: Serializer,
3729 {
3730 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3731 self.0, serializer,
3732 )
3733 }
3734 }
3735 &SerializeWith(&self.r#total_time)
3736 })?;
3737 } else {
3738 serialize_struct.skip_field("totalTime")?;
3739 }
3740 if !Vec::is_empty(&self.r#yield) {
3741 serialize_struct.serialize_field("yield", {
3742 struct SerializeWith<'a>(&'a Vec<YieldProperty>);
3743 impl<'a> Serialize for SerializeWith<'a> {
3744 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3745 where
3746 S: Serializer,
3747 {
3748 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3749 self.0, serializer,
3750 )
3751 }
3752 }
3753 &SerializeWith(&self.r#yield)
3754 })?;
3755 } else {
3756 serialize_struct.skip_field("yield")?;
3757 }
3758 if !Vec::is_empty(&self.r#additional_type) {
3759 serialize_struct.serialize_field("additionalType", {
3760 struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
3761 impl<'a> Serialize for SerializeWith<'a> {
3762 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3763 where
3764 S: Serializer,
3765 {
3766 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3767 self.0, serializer,
3768 )
3769 }
3770 }
3771 &SerializeWith(&self.r#additional_type)
3772 })?;
3773 } else {
3774 serialize_struct.skip_field("additionalType")?;
3775 }
3776 if !Vec::is_empty(&self.r#alternate_name) {
3777 serialize_struct.serialize_field("alternateName", {
3778 struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
3779 impl<'a> Serialize for SerializeWith<'a> {
3780 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3781 where
3782 S: Serializer,
3783 {
3784 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3785 self.0, serializer,
3786 )
3787 }
3788 }
3789 &SerializeWith(&self.r#alternate_name)
3790 })?;
3791 } else {
3792 serialize_struct.skip_field("alternateName")?;
3793 }
3794 if !Vec::is_empty(&self.r#description) {
3795 serialize_struct.serialize_field("description", {
3796 struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
3797 impl<'a> Serialize for SerializeWith<'a> {
3798 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3799 where
3800 S: Serializer,
3801 {
3802 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3803 self.0, serializer,
3804 )
3805 }
3806 }
3807 &SerializeWith(&self.r#description)
3808 })?;
3809 } else {
3810 serialize_struct.skip_field("description")?;
3811 }
3812 if !Vec::is_empty(&self.r#disambiguating_description) {
3813 serialize_struct.serialize_field("disambiguatingDescription", {
3814 struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
3815 impl<'a> Serialize for SerializeWith<'a> {
3816 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3817 where
3818 S: Serializer,
3819 {
3820 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3821 self.0, serializer,
3822 )
3823 }
3824 }
3825 &SerializeWith(&self.r#disambiguating_description)
3826 })?;
3827 } else {
3828 serialize_struct.skip_field("disambiguatingDescription")?;
3829 }
3830 if !Vec::is_empty(&self.r#identifier) {
3831 serialize_struct.serialize_field("identifier", {
3832 struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
3833 impl<'a> Serialize for SerializeWith<'a> {
3834 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3835 where
3836 S: Serializer,
3837 {
3838 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3839 self.0, serializer,
3840 )
3841 }
3842 }
3843 &SerializeWith(&self.r#identifier)
3844 })?;
3845 } else {
3846 serialize_struct.skip_field("identifier")?;
3847 }
3848 if !Vec::is_empty(&self.r#image) {
3849 serialize_struct.serialize_field("image", {
3850 struct SerializeWith<'a>(&'a Vec<ImageProperty>);
3851 impl<'a> Serialize for SerializeWith<'a> {
3852 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3853 where
3854 S: Serializer,
3855 {
3856 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3857 self.0, serializer,
3858 )
3859 }
3860 }
3861 &SerializeWith(&self.r#image)
3862 })?;
3863 } else {
3864 serialize_struct.skip_field("image")?;
3865 }
3866 if !Vec::is_empty(&self.r#main_entity_of_page) {
3867 serialize_struct.serialize_field("mainEntityOfPage", {
3868 struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
3869 impl<'a> Serialize for SerializeWith<'a> {
3870 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3871 where
3872 S: Serializer,
3873 {
3874 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3875 self.0, serializer,
3876 )
3877 }
3878 }
3879 &SerializeWith(&self.r#main_entity_of_page)
3880 })?;
3881 } else {
3882 serialize_struct.skip_field("mainEntityOfPage")?;
3883 }
3884 if !Vec::is_empty(&self.r#name) {
3885 serialize_struct.serialize_field("name", {
3886 struct SerializeWith<'a>(&'a Vec<NameProperty>);
3887 impl<'a> Serialize for SerializeWith<'a> {
3888 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3889 where
3890 S: Serializer,
3891 {
3892 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3893 self.0, serializer,
3894 )
3895 }
3896 }
3897 &SerializeWith(&self.r#name)
3898 })?;
3899 } else {
3900 serialize_struct.skip_field("name")?;
3901 }
3902 if !Vec::is_empty(&self.r#potential_action) {
3903 serialize_struct.serialize_field("potentialAction", {
3904 struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
3905 impl<'a> Serialize for SerializeWith<'a> {
3906 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3907 where
3908 S: Serializer,
3909 {
3910 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3911 self.0, serializer,
3912 )
3913 }
3914 }
3915 &SerializeWith(&self.r#potential_action)
3916 })?;
3917 } else {
3918 serialize_struct.skip_field("potentialAction")?;
3919 }
3920 if !Vec::is_empty(&self.r#same_as) {
3921 serialize_struct.serialize_field("sameAs", {
3922 struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
3923 impl<'a> Serialize for SerializeWith<'a> {
3924 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3925 where
3926 S: Serializer,
3927 {
3928 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3929 self.0, serializer,
3930 )
3931 }
3932 }
3933 &SerializeWith(&self.r#same_as)
3934 })?;
3935 } else {
3936 serialize_struct.skip_field("sameAs")?;
3937 }
3938 if !Vec::is_empty(&self.r#subject_of) {
3939 serialize_struct.serialize_field("subjectOf", {
3940 struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
3941 impl<'a> Serialize for SerializeWith<'a> {
3942 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3943 where
3944 S: Serializer,
3945 {
3946 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3947 self.0, serializer,
3948 )
3949 }
3950 }
3951 &SerializeWith(&self.r#subject_of)
3952 })?;
3953 } else {
3954 serialize_struct.skip_field("subjectOf")?;
3955 }
3956 if !Vec::is_empty(&self.r#url) {
3957 serialize_struct.serialize_field("url", {
3958 struct SerializeWith<'a>(&'a Vec<UrlProperty>);
3959 impl<'a> Serialize for SerializeWith<'a> {
3960 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
3961 where
3962 S: Serializer,
3963 {
3964 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
3965 self.0, serializer,
3966 )
3967 }
3968 }
3969 &SerializeWith(&self.r#url)
3970 })?;
3971 } else {
3972 serialize_struct.skip_field("url")?;
3973 }
3974 serialize_struct.end()
3975 }
3976 }
3977 impl<'de> Deserialize<'de> for Recipe {
3978 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
3979 where
3980 D: Deserializer<'de>,
3981 {
3982 enum Field {
3983 CookTime,
3984 CookingMethod,
3985 Ingredients,
3986 Nutrition,
3987 RecipeCategory,
3988 RecipeCuisine,
3989 RecipeIngredient,
3990 RecipeInstructions,
3991 RecipeYield,
3992 SuitableForDiet,
3993 About,
3994 Abstract,
3995 AccessMode,
3996 AccessModeSufficient,
3997 AccessibilityApi,
3998 AccessibilityControl,
3999 AccessibilityFeature,
4000 AccessibilityHazard,
4001 AccessibilitySummary,
4002 AccountablePerson,
4003 AcquireLicensePage,
4004 AggregateRating,
4005 AlternativeHeadline,
4006 ArchivedAt,
4007 Assesses,
4008 AssociatedMedia,
4009 Audience,
4010 Audio,
4011 Author,
4012 Award,
4013 Awards,
4014 Character,
4015 Citation,
4016 Comment,
4017 CommentCount,
4018 ConditionsOfAccess,
4019 ContentLocation,
4020 ContentRating,
4021 ContentReferenceTime,
4022 Contributor,
4023 CopyrightHolder,
4024 CopyrightNotice,
4025 CopyrightYear,
4026 Correction,
4027 CountryOfOrigin,
4028 CreativeWorkStatus,
4029 Creator,
4030 CreditText,
4031 DateCreated,
4032 DateModified,
4033 DatePublished,
4034 DiscussionUrl,
4035 EditEidr,
4036 Editor,
4037 EducationalAlignment,
4038 EducationalLevel,
4039 EducationalUse,
4040 Encoding,
4041 EncodingFormat,
4042 Encodings,
4043 ExampleOfWork,
4044 Expires,
4045 FileFormat,
4046 Funder,
4047 Funding,
4048 Genre,
4049 HasPart,
4050 Headline,
4051 InLanguage,
4052 InteractionStatistic,
4053 InteractivityType,
4054 InterpretedAsClaim,
4055 IsAccessibleForFree,
4056 IsBasedOn,
4057 IsBasedOnUrl,
4058 IsFamilyFriendly,
4059 IsPartOf,
4060 Keywords,
4061 LearningResourceType,
4062 License,
4063 LocationCreated,
4064 MainEntity,
4065 Maintainer,
4066 Material,
4067 MaterialExtent,
4068 Mentions,
4069 Offers,
4070 Pattern,
4071 Position,
4072 Producer,
4073 Provider,
4074 Publication,
4075 Publisher,
4076 PublisherImprint,
4077 PublishingPrinciples,
4078 RecordedAt,
4079 ReleasedEvent,
4080 Review,
4081 Reviews,
4082 SchemaVersion,
4083 SdDatePublished,
4084 SdLicense,
4085 SdPublisher,
4086 Size,
4087 SourceOrganization,
4088 Spatial,
4089 SpatialCoverage,
4090 Sponsor,
4091 Teaches,
4092 Temporal,
4093 TemporalCoverage,
4094 Text,
4095 Thumbnail,
4096 ThumbnailUrl,
4097 TimeRequired,
4098 TranslationOfWork,
4099 Translator,
4100 TypicalAgeRange,
4101 UsageInfo,
4102 Version,
4103 Video,
4104 WorkExample,
4105 WorkTranslation,
4106 EstimatedCost,
4107 PerformTime,
4108 PrepTime,
4109 Step,
4110 Steps,
4111 Supply,
4112 Tool,
4113 TotalTime,
4114 Yield,
4115 AdditionalType,
4116 AlternateName,
4117 Description,
4118 DisambiguatingDescription,
4119 Identifier,
4120 Image,
4121 MainEntityOfPage,
4122 Name,
4123 PotentialAction,
4124 SameAs,
4125 SubjectOf,
4126 Url,
4127 Ignore,
4128 }
4129 struct FieldVisitor;
4130 impl<'de> Visitor<'de> for FieldVisitor {
4131 type Value = Field;
4132 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
4133 formatter.write_str("field identifier")
4134 }
4135 fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
4136 where
4137 E: de::Error,
4138 {
4139 match value {
4140 "cookTime" => Ok(Field::CookTime),
4141 "cookingMethod" => Ok(Field::CookingMethod),
4142 "ingredients" => Ok(Field::Ingredients),
4143 "nutrition" => Ok(Field::Nutrition),
4144 "recipeCategory" => Ok(Field::RecipeCategory),
4145 "recipeCuisine" => Ok(Field::RecipeCuisine),
4146 "recipeIngredient" => Ok(Field::RecipeIngredient),
4147 "recipeInstructions" => Ok(Field::RecipeInstructions),
4148 "recipeYield" => Ok(Field::RecipeYield),
4149 "suitableForDiet" => Ok(Field::SuitableForDiet),
4150 "about" => Ok(Field::About),
4151 "abstract" => Ok(Field::Abstract),
4152 "accessMode" => Ok(Field::AccessMode),
4153 "accessModeSufficient" => Ok(Field::AccessModeSufficient),
4154 "accessibilityAPI" => Ok(Field::AccessibilityApi),
4155 "accessibilityControl" => Ok(Field::AccessibilityControl),
4156 "accessibilityFeature" => Ok(Field::AccessibilityFeature),
4157 "accessibilityHazard" => Ok(Field::AccessibilityHazard),
4158 "accessibilitySummary" => Ok(Field::AccessibilitySummary),
4159 "accountablePerson" => Ok(Field::AccountablePerson),
4160 "acquireLicensePage" => Ok(Field::AcquireLicensePage),
4161 "aggregateRating" => Ok(Field::AggregateRating),
4162 "alternativeHeadline" => Ok(Field::AlternativeHeadline),
4163 "archivedAt" => Ok(Field::ArchivedAt),
4164 "assesses" => Ok(Field::Assesses),
4165 "associatedMedia" => Ok(Field::AssociatedMedia),
4166 "audience" => Ok(Field::Audience),
4167 "audio" => Ok(Field::Audio),
4168 "author" => Ok(Field::Author),
4169 "award" => Ok(Field::Award),
4170 "awards" => Ok(Field::Awards),
4171 "character" => Ok(Field::Character),
4172 "citation" => Ok(Field::Citation),
4173 "comment" => Ok(Field::Comment),
4174 "commentCount" => Ok(Field::CommentCount),
4175 "conditionsOfAccess" => Ok(Field::ConditionsOfAccess),
4176 "contentLocation" => Ok(Field::ContentLocation),
4177 "contentRating" => Ok(Field::ContentRating),
4178 "contentReferenceTime" => Ok(Field::ContentReferenceTime),
4179 "contributor" => Ok(Field::Contributor),
4180 "copyrightHolder" => Ok(Field::CopyrightHolder),
4181 "copyrightNotice" => Ok(Field::CopyrightNotice),
4182 "copyrightYear" => Ok(Field::CopyrightYear),
4183 "correction" => Ok(Field::Correction),
4184 "countryOfOrigin" => Ok(Field::CountryOfOrigin),
4185 "creativeWorkStatus" => Ok(Field::CreativeWorkStatus),
4186 "creator" => Ok(Field::Creator),
4187 "creditText" => Ok(Field::CreditText),
4188 "dateCreated" => Ok(Field::DateCreated),
4189 "dateModified" => Ok(Field::DateModified),
4190 "datePublished" => Ok(Field::DatePublished),
4191 "discussionUrl" => Ok(Field::DiscussionUrl),
4192 "editEIDR" => Ok(Field::EditEidr),
4193 "editor" => Ok(Field::Editor),
4194 "educationalAlignment" => Ok(Field::EducationalAlignment),
4195 "educationalLevel" => Ok(Field::EducationalLevel),
4196 "educationalUse" => Ok(Field::EducationalUse),
4197 "encoding" => Ok(Field::Encoding),
4198 "encodingFormat" => Ok(Field::EncodingFormat),
4199 "encodings" => Ok(Field::Encodings),
4200 "exampleOfWork" => Ok(Field::ExampleOfWork),
4201 "expires" => Ok(Field::Expires),
4202 "fileFormat" => Ok(Field::FileFormat),
4203 "funder" => Ok(Field::Funder),
4204 "funding" => Ok(Field::Funding),
4205 "genre" => Ok(Field::Genre),
4206 "hasPart" => Ok(Field::HasPart),
4207 "headline" => Ok(Field::Headline),
4208 "inLanguage" => Ok(Field::InLanguage),
4209 "interactionStatistic" => Ok(Field::InteractionStatistic),
4210 "interactivityType" => Ok(Field::InteractivityType),
4211 "interpretedAsClaim" => Ok(Field::InterpretedAsClaim),
4212 "isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
4213 "isBasedOn" => Ok(Field::IsBasedOn),
4214 "isBasedOnUrl" => Ok(Field::IsBasedOnUrl),
4215 "isFamilyFriendly" => Ok(Field::IsFamilyFriendly),
4216 "isPartOf" => Ok(Field::IsPartOf),
4217 "keywords" => Ok(Field::Keywords),
4218 "learningResourceType" => Ok(Field::LearningResourceType),
4219 "license" => Ok(Field::License),
4220 "locationCreated" => Ok(Field::LocationCreated),
4221 "mainEntity" => Ok(Field::MainEntity),
4222 "maintainer" => Ok(Field::Maintainer),
4223 "material" => Ok(Field::Material),
4224 "materialExtent" => Ok(Field::MaterialExtent),
4225 "mentions" => Ok(Field::Mentions),
4226 "offers" => Ok(Field::Offers),
4227 "pattern" => Ok(Field::Pattern),
4228 "position" => Ok(Field::Position),
4229 "producer" => Ok(Field::Producer),
4230 "provider" => Ok(Field::Provider),
4231 "publication" => Ok(Field::Publication),
4232 "publisher" => Ok(Field::Publisher),
4233 "publisherImprint" => Ok(Field::PublisherImprint),
4234 "publishingPrinciples" => Ok(Field::PublishingPrinciples),
4235 "recordedAt" => Ok(Field::RecordedAt),
4236 "releasedEvent" => Ok(Field::ReleasedEvent),
4237 "review" => Ok(Field::Review),
4238 "reviews" => Ok(Field::Reviews),
4239 "schemaVersion" => Ok(Field::SchemaVersion),
4240 "sdDatePublished" => Ok(Field::SdDatePublished),
4241 "sdLicense" => Ok(Field::SdLicense),
4242 "sdPublisher" => Ok(Field::SdPublisher),
4243 "size" => Ok(Field::Size),
4244 "sourceOrganization" => Ok(Field::SourceOrganization),
4245 "spatial" => Ok(Field::Spatial),
4246 "spatialCoverage" => Ok(Field::SpatialCoverage),
4247 "sponsor" => Ok(Field::Sponsor),
4248 "teaches" => Ok(Field::Teaches),
4249 "temporal" => Ok(Field::Temporal),
4250 "temporalCoverage" => Ok(Field::TemporalCoverage),
4251 "text" => Ok(Field::Text),
4252 "thumbnail" => Ok(Field::Thumbnail),
4253 "thumbnailUrl" => Ok(Field::ThumbnailUrl),
4254 "timeRequired" => Ok(Field::TimeRequired),
4255 "translationOfWork" => Ok(Field::TranslationOfWork),
4256 "translator" => Ok(Field::Translator),
4257 "typicalAgeRange" => Ok(Field::TypicalAgeRange),
4258 "usageInfo" => Ok(Field::UsageInfo),
4259 "version" => Ok(Field::Version),
4260 "video" => Ok(Field::Video),
4261 "workExample" => Ok(Field::WorkExample),
4262 "workTranslation" => Ok(Field::WorkTranslation),
4263 "estimatedCost" => Ok(Field::EstimatedCost),
4264 "performTime" => Ok(Field::PerformTime),
4265 "prepTime" => Ok(Field::PrepTime),
4266 "step" => Ok(Field::Step),
4267 "steps" => Ok(Field::Steps),
4268 "supply" => Ok(Field::Supply),
4269 "tool" => Ok(Field::Tool),
4270 "totalTime" => Ok(Field::TotalTime),
4271 "yield" => Ok(Field::Yield),
4272 "additionalType" => Ok(Field::AdditionalType),
4273 "alternateName" => Ok(Field::AlternateName),
4274 "description" => Ok(Field::Description),
4275 "disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
4276 "identifier" => Ok(Field::Identifier),
4277 "image" => Ok(Field::Image),
4278 "mainEntityOfPage" => Ok(Field::MainEntityOfPage),
4279 "name" => Ok(Field::Name),
4280 "potentialAction" => Ok(Field::PotentialAction),
4281 "sameAs" => Ok(Field::SameAs),
4282 "subjectOf" => Ok(Field::SubjectOf),
4283 "url" => Ok(Field::Url),
4284 "id" | "type" => Ok(Field::Ignore),
4285 _ => Err(de::Error::unknown_field(value, FIELDS)),
4286 }
4287 }
4288 fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
4289 where
4290 E: de::Error,
4291 {
4292 match value {
4293 b"cookTime" => Ok(Field::CookTime),
4294 b"cookingMethod" => Ok(Field::CookingMethod),
4295 b"ingredients" => Ok(Field::Ingredients),
4296 b"nutrition" => Ok(Field::Nutrition),
4297 b"recipeCategory" => Ok(Field::RecipeCategory),
4298 b"recipeCuisine" => Ok(Field::RecipeCuisine),
4299 b"recipeIngredient" => Ok(Field::RecipeIngredient),
4300 b"recipeInstructions" => Ok(Field::RecipeInstructions),
4301 b"recipeYield" => Ok(Field::RecipeYield),
4302 b"suitableForDiet" => Ok(Field::SuitableForDiet),
4303 b"about" => Ok(Field::About),
4304 b"abstract" => Ok(Field::Abstract),
4305 b"accessMode" => Ok(Field::AccessMode),
4306 b"accessModeSufficient" => Ok(Field::AccessModeSufficient),
4307 b"accessibilityAPI" => Ok(Field::AccessibilityApi),
4308 b"accessibilityControl" => Ok(Field::AccessibilityControl),
4309 b"accessibilityFeature" => Ok(Field::AccessibilityFeature),
4310 b"accessibilityHazard" => Ok(Field::AccessibilityHazard),
4311 b"accessibilitySummary" => Ok(Field::AccessibilitySummary),
4312 b"accountablePerson" => Ok(Field::AccountablePerson),
4313 b"acquireLicensePage" => Ok(Field::AcquireLicensePage),
4314 b"aggregateRating" => Ok(Field::AggregateRating),
4315 b"alternativeHeadline" => Ok(Field::AlternativeHeadline),
4316 b"archivedAt" => Ok(Field::ArchivedAt),
4317 b"assesses" => Ok(Field::Assesses),
4318 b"associatedMedia" => Ok(Field::AssociatedMedia),
4319 b"audience" => Ok(Field::Audience),
4320 b"audio" => Ok(Field::Audio),
4321 b"author" => Ok(Field::Author),
4322 b"award" => Ok(Field::Award),
4323 b"awards" => Ok(Field::Awards),
4324 b"character" => Ok(Field::Character),
4325 b"citation" => Ok(Field::Citation),
4326 b"comment" => Ok(Field::Comment),
4327 b"commentCount" => Ok(Field::CommentCount),
4328 b"conditionsOfAccess" => Ok(Field::ConditionsOfAccess),
4329 b"contentLocation" => Ok(Field::ContentLocation),
4330 b"contentRating" => Ok(Field::ContentRating),
4331 b"contentReferenceTime" => Ok(Field::ContentReferenceTime),
4332 b"contributor" => Ok(Field::Contributor),
4333 b"copyrightHolder" => Ok(Field::CopyrightHolder),
4334 b"copyrightNotice" => Ok(Field::CopyrightNotice),
4335 b"copyrightYear" => Ok(Field::CopyrightYear),
4336 b"correction" => Ok(Field::Correction),
4337 b"countryOfOrigin" => Ok(Field::CountryOfOrigin),
4338 b"creativeWorkStatus" => Ok(Field::CreativeWorkStatus),
4339 b"creator" => Ok(Field::Creator),
4340 b"creditText" => Ok(Field::CreditText),
4341 b"dateCreated" => Ok(Field::DateCreated),
4342 b"dateModified" => Ok(Field::DateModified),
4343 b"datePublished" => Ok(Field::DatePublished),
4344 b"discussionUrl" => Ok(Field::DiscussionUrl),
4345 b"editEIDR" => Ok(Field::EditEidr),
4346 b"editor" => Ok(Field::Editor),
4347 b"educationalAlignment" => Ok(Field::EducationalAlignment),
4348 b"educationalLevel" => Ok(Field::EducationalLevel),
4349 b"educationalUse" => Ok(Field::EducationalUse),
4350 b"encoding" => Ok(Field::Encoding),
4351 b"encodingFormat" => Ok(Field::EncodingFormat),
4352 b"encodings" => Ok(Field::Encodings),
4353 b"exampleOfWork" => Ok(Field::ExampleOfWork),
4354 b"expires" => Ok(Field::Expires),
4355 b"fileFormat" => Ok(Field::FileFormat),
4356 b"funder" => Ok(Field::Funder),
4357 b"funding" => Ok(Field::Funding),
4358 b"genre" => Ok(Field::Genre),
4359 b"hasPart" => Ok(Field::HasPart),
4360 b"headline" => Ok(Field::Headline),
4361 b"inLanguage" => Ok(Field::InLanguage),
4362 b"interactionStatistic" => Ok(Field::InteractionStatistic),
4363 b"interactivityType" => Ok(Field::InteractivityType),
4364 b"interpretedAsClaim" => Ok(Field::InterpretedAsClaim),
4365 b"isAccessibleForFree" => Ok(Field::IsAccessibleForFree),
4366 b"isBasedOn" => Ok(Field::IsBasedOn),
4367 b"isBasedOnUrl" => Ok(Field::IsBasedOnUrl),
4368 b"isFamilyFriendly" => Ok(Field::IsFamilyFriendly),
4369 b"isPartOf" => Ok(Field::IsPartOf),
4370 b"keywords" => Ok(Field::Keywords),
4371 b"learningResourceType" => Ok(Field::LearningResourceType),
4372 b"license" => Ok(Field::License),
4373 b"locationCreated" => Ok(Field::LocationCreated),
4374 b"mainEntity" => Ok(Field::MainEntity),
4375 b"maintainer" => Ok(Field::Maintainer),
4376 b"material" => Ok(Field::Material),
4377 b"materialExtent" => Ok(Field::MaterialExtent),
4378 b"mentions" => Ok(Field::Mentions),
4379 b"offers" => Ok(Field::Offers),
4380 b"pattern" => Ok(Field::Pattern),
4381 b"position" => Ok(Field::Position),
4382 b"producer" => Ok(Field::Producer),
4383 b"provider" => Ok(Field::Provider),
4384 b"publication" => Ok(Field::Publication),
4385 b"publisher" => Ok(Field::Publisher),
4386 b"publisherImprint" => Ok(Field::PublisherImprint),
4387 b"publishingPrinciples" => Ok(Field::PublishingPrinciples),
4388 b"recordedAt" => Ok(Field::RecordedAt),
4389 b"releasedEvent" => Ok(Field::ReleasedEvent),
4390 b"review" => Ok(Field::Review),
4391 b"reviews" => Ok(Field::Reviews),
4392 b"schemaVersion" => Ok(Field::SchemaVersion),
4393 b"sdDatePublished" => Ok(Field::SdDatePublished),
4394 b"sdLicense" => Ok(Field::SdLicense),
4395 b"sdPublisher" => Ok(Field::SdPublisher),
4396 b"size" => Ok(Field::Size),
4397 b"sourceOrganization" => Ok(Field::SourceOrganization),
4398 b"spatial" => Ok(Field::Spatial),
4399 b"spatialCoverage" => Ok(Field::SpatialCoverage),
4400 b"sponsor" => Ok(Field::Sponsor),
4401 b"teaches" => Ok(Field::Teaches),
4402 b"temporal" => Ok(Field::Temporal),
4403 b"temporalCoverage" => Ok(Field::TemporalCoverage),
4404 b"text" => Ok(Field::Text),
4405 b"thumbnail" => Ok(Field::Thumbnail),
4406 b"thumbnailUrl" => Ok(Field::ThumbnailUrl),
4407 b"timeRequired" => Ok(Field::TimeRequired),
4408 b"translationOfWork" => Ok(Field::TranslationOfWork),
4409 b"translator" => Ok(Field::Translator),
4410 b"typicalAgeRange" => Ok(Field::TypicalAgeRange),
4411 b"usageInfo" => Ok(Field::UsageInfo),
4412 b"version" => Ok(Field::Version),
4413 b"video" => Ok(Field::Video),
4414 b"workExample" => Ok(Field::WorkExample),
4415 b"workTranslation" => Ok(Field::WorkTranslation),
4416 b"estimatedCost" => Ok(Field::EstimatedCost),
4417 b"performTime" => Ok(Field::PerformTime),
4418 b"prepTime" => Ok(Field::PrepTime),
4419 b"step" => Ok(Field::Step),
4420 b"steps" => Ok(Field::Steps),
4421 b"supply" => Ok(Field::Supply),
4422 b"tool" => Ok(Field::Tool),
4423 b"totalTime" => Ok(Field::TotalTime),
4424 b"yield" => Ok(Field::Yield),
4425 b"additionalType" => Ok(Field::AdditionalType),
4426 b"alternateName" => Ok(Field::AlternateName),
4427 b"description" => Ok(Field::Description),
4428 b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
4429 b"identifier" => Ok(Field::Identifier),
4430 b"image" => Ok(Field::Image),
4431 b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
4432 b"name" => Ok(Field::Name),
4433 b"potentialAction" => Ok(Field::PotentialAction),
4434 b"sameAs" => Ok(Field::SameAs),
4435 b"subjectOf" => Ok(Field::SubjectOf),
4436 b"url" => Ok(Field::Url),
4437 b"id" | b"type" => Ok(Field::Ignore),
4438 _ => {
4439 let value = &String::from_utf8_lossy(value);
4440 Err(de::Error::unknown_field(value, FIELDS))
4441 }
4442 }
4443 }
4444 }
4445 impl<'de> Deserialize<'de> for Field {
4446 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4447 where
4448 D: Deserializer<'de>,
4449 {
4450 deserializer.deserialize_identifier(FieldVisitor)
4451 }
4452 }
4453 struct ClassVisitor;
4454 impl<'de> Visitor<'de> for ClassVisitor {
4455 type Value = Recipe;
4456 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
4457 formatter.write_str("schema.org schema Recipe")
4458 }
4459 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
4460 where
4461 A: de::MapAccess<'de>,
4462 {
4463 let mut r#cook_time_property = None;
4464 let mut r#cooking_method_property = None;
4465 let mut r#ingredients_property = None;
4466 let mut r#nutrition_property = None;
4467 let mut r#recipe_category_property = None;
4468 let mut r#recipe_cuisine_property = None;
4469 let mut r#recipe_ingredient_property = None;
4470 let mut r#recipe_instructions_property = None;
4471 let mut r#recipe_yield_property = None;
4472 let mut r#suitable_for_diet_property = None;
4473 let mut r#about_property = None;
4474 let mut r#abstract_property = None;
4475 let mut r#access_mode_property = None;
4476 let mut r#access_mode_sufficient_property = None;
4477 let mut r#accessibility_api_property = None;
4478 let mut r#accessibility_control_property = None;
4479 let mut r#accessibility_feature_property = None;
4480 let mut r#accessibility_hazard_property = None;
4481 let mut r#accessibility_summary_property = None;
4482 let mut r#accountable_person_property = None;
4483 let mut r#acquire_license_page_property = None;
4484 let mut r#aggregate_rating_property = None;
4485 let mut r#alternative_headline_property = None;
4486 let mut r#archived_at_property = None;
4487 let mut r#assesses_property = None;
4488 let mut r#associated_media_property = None;
4489 let mut r#audience_property = None;
4490 let mut r#audio_property = None;
4491 let mut r#author_property = None;
4492 let mut r#award_property = None;
4493 let mut r#awards_property = None;
4494 let mut r#character_property = None;
4495 let mut r#citation_property = None;
4496 let mut r#comment_property = None;
4497 let mut r#comment_count_property = None;
4498 let mut r#conditions_of_access_property = None;
4499 let mut r#content_location_property = None;
4500 let mut r#content_rating_property = None;
4501 let mut r#content_reference_time_property = None;
4502 let mut r#contributor_property = None;
4503 let mut r#copyright_holder_property = None;
4504 let mut r#copyright_notice_property = None;
4505 let mut r#copyright_year_property = None;
4506 let mut r#correction_property = None;
4507 let mut r#country_of_origin_property = None;
4508 let mut r#creative_work_status_property = None;
4509 let mut r#creator_property = None;
4510 let mut r#credit_text_property = None;
4511 let mut r#date_created_property = None;
4512 let mut r#date_modified_property = None;
4513 let mut r#date_published_property = None;
4514 let mut r#discussion_url_property = None;
4515 let mut r#edit_eidr_property = None;
4516 let mut r#editor_property = None;
4517 let mut r#educational_alignment_property = None;
4518 let mut r#educational_level_property = None;
4519 let mut r#educational_use_property = None;
4520 let mut r#encoding_property = None;
4521 let mut r#encoding_format_property = None;
4522 let mut r#encodings_property = None;
4523 let mut r#example_of_work_property = None;
4524 let mut r#expires_property = None;
4525 let mut r#file_format_property = None;
4526 let mut r#funder_property = None;
4527 let mut r#funding_property = None;
4528 let mut r#genre_property = None;
4529 let mut r#has_part_property = None;
4530 let mut r#headline_property = None;
4531 let mut r#in_language_property = None;
4532 let mut r#interaction_statistic_property = None;
4533 let mut r#interactivity_type_property = None;
4534 let mut r#interpreted_as_claim_property = None;
4535 let mut r#is_accessible_for_free_property = None;
4536 let mut r#is_based_on_property = None;
4537 let mut r#is_based_on_url_property = None;
4538 let mut r#is_family_friendly_property = None;
4539 let mut r#is_part_of_property = None;
4540 let mut r#keywords_property = None;
4541 let mut r#learning_resource_type_property = None;
4542 let mut r#license_property = None;
4543 let mut r#location_created_property = None;
4544 let mut r#main_entity_property = None;
4545 let mut r#maintainer_property = None;
4546 let mut r#material_property = None;
4547 let mut r#material_extent_property = None;
4548 let mut r#mentions_property = None;
4549 let mut r#offers_property = None;
4550 let mut r#pattern_property = None;
4551 let mut r#position_property = None;
4552 let mut r#producer_property = None;
4553 let mut r#provider_property = None;
4554 let mut r#publication_property = None;
4555 let mut r#publisher_property = None;
4556 let mut r#publisher_imprint_property = None;
4557 let mut r#publishing_principles_property = None;
4558 let mut r#recorded_at_property = None;
4559 let mut r#released_event_property = None;
4560 let mut r#review_property = None;
4561 let mut r#reviews_property = None;
4562 let mut r#schema_version_property = None;
4563 let mut r#sd_date_published_property = None;
4564 let mut r#sd_license_property = None;
4565 let mut r#sd_publisher_property = None;
4566 let mut r#size_property = None;
4567 let mut r#source_organization_property = None;
4568 let mut r#spatial_property = None;
4569 let mut r#spatial_coverage_property = None;
4570 let mut r#sponsor_property = None;
4571 let mut r#teaches_property = None;
4572 let mut r#temporal_property = None;
4573 let mut r#temporal_coverage_property = None;
4574 let mut r#text_property = None;
4575 let mut r#thumbnail_property = None;
4576 let mut r#thumbnail_url_property = None;
4577 let mut r#time_required_property = None;
4578 let mut r#translation_of_work_property = None;
4579 let mut r#translator_property = None;
4580 let mut r#typical_age_range_property = None;
4581 let mut r#usage_info_property = None;
4582 let mut r#version_property = None;
4583 let mut r#video_property = None;
4584 let mut r#work_example_property = None;
4585 let mut r#work_translation_property = None;
4586 let mut r#estimated_cost_property = None;
4587 let mut r#perform_time_property = None;
4588 let mut r#prep_time_property = None;
4589 let mut r#step_property = None;
4590 let mut r#steps_property = None;
4591 let mut r#supply_property = None;
4592 let mut r#tool_property = None;
4593 let mut r#total_time_property = None;
4594 let mut r#yield_property = None;
4595 let mut r#additional_type_property = None;
4596 let mut r#alternate_name_property = None;
4597 let mut r#description_property = None;
4598 let mut r#disambiguating_description_property = None;
4599 let mut r#identifier_property = None;
4600 let mut r#image_property = None;
4601 let mut r#main_entity_of_page_property = None;
4602 let mut r#name_property = None;
4603 let mut r#potential_action_property = None;
4604 let mut r#same_as_property = None;
4605 let mut r#subject_of_property = None;
4606 let mut r#url_property = None;
4607 while let Some(key) = map.next_key::<Field>()? {
4608 match key {
4609 Field::CookTime => {
4610 if r#cook_time_property.is_some() {
4611 return Err(<A::Error as de::Error>::duplicate_field(
4612 "cookTime",
4613 ));
4614 }
4615 r#cook_time_property = Some({
4616 struct DeserializeWith(Vec<CookTimeProperty>);
4617 impl<'de> Deserialize<'de> for DeserializeWith {
4618 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4619 where
4620 D: Deserializer<'de>,
4621 {
4622 Ok(DeserializeWith(serde_with::As::<
4623 serde_with::OneOrMany<serde_with::Same>,
4624 >::deserialize(deserializer)?))
4625 }
4626 }
4627 match map.next_value::<DeserializeWith>() {
4628 Ok(deserialize_with) => deserialize_with.0,
4629 Err(err) => {
4630 return Err(err);
4631 }
4632 }
4633 });
4634 }
4635 Field::CookingMethod => {
4636 if r#cooking_method_property.is_some() {
4637 return Err(<A::Error as de::Error>::duplicate_field(
4638 "cookingMethod",
4639 ));
4640 }
4641 r#cooking_method_property = Some({
4642 struct DeserializeWith(Vec<CookingMethodProperty>);
4643 impl<'de> Deserialize<'de> for DeserializeWith {
4644 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4645 where
4646 D: Deserializer<'de>,
4647 {
4648 Ok(DeserializeWith(serde_with::As::<
4649 serde_with::OneOrMany<serde_with::Same>,
4650 >::deserialize(deserializer)?))
4651 }
4652 }
4653 match map.next_value::<DeserializeWith>() {
4654 Ok(deserialize_with) => deserialize_with.0,
4655 Err(err) => {
4656 return Err(err);
4657 }
4658 }
4659 });
4660 }
4661 Field::Ingredients => {
4662 if r#ingredients_property.is_some() {
4663 return Err(<A::Error as de::Error>::duplicate_field(
4664 "ingredients",
4665 ));
4666 }
4667 r#ingredients_property = Some({
4668 struct DeserializeWith(Vec<IngredientsProperty>);
4669 impl<'de> Deserialize<'de> for DeserializeWith {
4670 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4671 where
4672 D: Deserializer<'de>,
4673 {
4674 Ok(DeserializeWith(serde_with::As::<
4675 serde_with::OneOrMany<serde_with::Same>,
4676 >::deserialize(deserializer)?))
4677 }
4678 }
4679 match map.next_value::<DeserializeWith>() {
4680 Ok(deserialize_with) => deserialize_with.0,
4681 Err(err) => {
4682 return Err(err);
4683 }
4684 }
4685 });
4686 }
4687 Field::Nutrition => {
4688 if r#nutrition_property.is_some() {
4689 return Err(<A::Error as de::Error>::duplicate_field(
4690 "nutrition",
4691 ));
4692 }
4693 r#nutrition_property = Some({
4694 struct DeserializeWith(Vec<NutritionProperty>);
4695 impl<'de> Deserialize<'de> for DeserializeWith {
4696 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4697 where
4698 D: Deserializer<'de>,
4699 {
4700 Ok(DeserializeWith(serde_with::As::<
4701 serde_with::OneOrMany<serde_with::Same>,
4702 >::deserialize(deserializer)?))
4703 }
4704 }
4705 match map.next_value::<DeserializeWith>() {
4706 Ok(deserialize_with) => deserialize_with.0,
4707 Err(err) => {
4708 return Err(err);
4709 }
4710 }
4711 });
4712 }
4713 Field::RecipeCategory => {
4714 if r#recipe_category_property.is_some() {
4715 return Err(<A::Error as de::Error>::duplicate_field(
4716 "recipeCategory",
4717 ));
4718 }
4719 r#recipe_category_property = Some({
4720 struct DeserializeWith(Vec<RecipeCategoryProperty>);
4721 impl<'de> Deserialize<'de> for DeserializeWith {
4722 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4723 where
4724 D: Deserializer<'de>,
4725 {
4726 Ok(DeserializeWith(serde_with::As::<
4727 serde_with::OneOrMany<serde_with::Same>,
4728 >::deserialize(deserializer)?))
4729 }
4730 }
4731 match map.next_value::<DeserializeWith>() {
4732 Ok(deserialize_with) => deserialize_with.0,
4733 Err(err) => {
4734 return Err(err);
4735 }
4736 }
4737 });
4738 }
4739 Field::RecipeCuisine => {
4740 if r#recipe_cuisine_property.is_some() {
4741 return Err(<A::Error as de::Error>::duplicate_field(
4742 "recipeCuisine",
4743 ));
4744 }
4745 r#recipe_cuisine_property = Some({
4746 struct DeserializeWith(Vec<RecipeCuisineProperty>);
4747 impl<'de> Deserialize<'de> for DeserializeWith {
4748 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4749 where
4750 D: Deserializer<'de>,
4751 {
4752 Ok(DeserializeWith(serde_with::As::<
4753 serde_with::OneOrMany<serde_with::Same>,
4754 >::deserialize(deserializer)?))
4755 }
4756 }
4757 match map.next_value::<DeserializeWith>() {
4758 Ok(deserialize_with) => deserialize_with.0,
4759 Err(err) => {
4760 return Err(err);
4761 }
4762 }
4763 });
4764 }
4765 Field::RecipeIngredient => {
4766 if r#recipe_ingredient_property.is_some() {
4767 return Err(<A::Error as de::Error>::duplicate_field(
4768 "recipeIngredient",
4769 ));
4770 }
4771 r#recipe_ingredient_property = Some({
4772 struct DeserializeWith(Vec<RecipeIngredientProperty>);
4773 impl<'de> Deserialize<'de> for DeserializeWith {
4774 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4775 where
4776 D: Deserializer<'de>,
4777 {
4778 Ok(DeserializeWith(serde_with::As::<
4779 serde_with::OneOrMany<serde_with::Same>,
4780 >::deserialize(deserializer)?))
4781 }
4782 }
4783 match map.next_value::<DeserializeWith>() {
4784 Ok(deserialize_with) => deserialize_with.0,
4785 Err(err) => {
4786 return Err(err);
4787 }
4788 }
4789 });
4790 }
4791 Field::RecipeInstructions => {
4792 if r#recipe_instructions_property.is_some() {
4793 return Err(<A::Error as de::Error>::duplicate_field(
4794 "recipeInstructions",
4795 ));
4796 }
4797 r#recipe_instructions_property = Some({
4798 struct DeserializeWith(Vec<RecipeInstructionsProperty>);
4799 impl<'de> Deserialize<'de> for DeserializeWith {
4800 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4801 where
4802 D: Deserializer<'de>,
4803 {
4804 Ok(DeserializeWith(serde_with::As::<
4805 serde_with::OneOrMany<serde_with::Same>,
4806 >::deserialize(deserializer)?))
4807 }
4808 }
4809 match map.next_value::<DeserializeWith>() {
4810 Ok(deserialize_with) => deserialize_with.0,
4811 Err(err) => {
4812 return Err(err);
4813 }
4814 }
4815 });
4816 }
4817 Field::RecipeYield => {
4818 if r#recipe_yield_property.is_some() {
4819 return Err(<A::Error as de::Error>::duplicate_field(
4820 "recipeYield",
4821 ));
4822 }
4823 r#recipe_yield_property = Some({
4824 struct DeserializeWith(Vec<RecipeYieldProperty>);
4825 impl<'de> Deserialize<'de> for DeserializeWith {
4826 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4827 where
4828 D: Deserializer<'de>,
4829 {
4830 Ok(DeserializeWith(serde_with::As::<
4831 serde_with::OneOrMany<serde_with::Same>,
4832 >::deserialize(deserializer)?))
4833 }
4834 }
4835 match map.next_value::<DeserializeWith>() {
4836 Ok(deserialize_with) => deserialize_with.0,
4837 Err(err) => {
4838 return Err(err);
4839 }
4840 }
4841 });
4842 }
4843 Field::SuitableForDiet => {
4844 if r#suitable_for_diet_property.is_some() {
4845 return Err(<A::Error as de::Error>::duplicate_field(
4846 "suitableForDiet",
4847 ));
4848 }
4849 r#suitable_for_diet_property = Some({
4850 struct DeserializeWith(Vec<SuitableForDietProperty>);
4851 impl<'de> Deserialize<'de> for DeserializeWith {
4852 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4853 where
4854 D: Deserializer<'de>,
4855 {
4856 Ok(DeserializeWith(serde_with::As::<
4857 serde_with::OneOrMany<serde_with::Same>,
4858 >::deserialize(deserializer)?))
4859 }
4860 }
4861 match map.next_value::<DeserializeWith>() {
4862 Ok(deserialize_with) => deserialize_with.0,
4863 Err(err) => {
4864 return Err(err);
4865 }
4866 }
4867 });
4868 }
4869 Field::About => {
4870 if r#about_property.is_some() {
4871 return Err(<A::Error as de::Error>::duplicate_field("about"));
4872 }
4873 r#about_property = Some({
4874 struct DeserializeWith(Vec<AboutProperty>);
4875 impl<'de> Deserialize<'de> for DeserializeWith {
4876 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4877 where
4878 D: Deserializer<'de>,
4879 {
4880 Ok(DeserializeWith(serde_with::As::<
4881 serde_with::OneOrMany<serde_with::Same>,
4882 >::deserialize(deserializer)?))
4883 }
4884 }
4885 match map.next_value::<DeserializeWith>() {
4886 Ok(deserialize_with) => deserialize_with.0,
4887 Err(err) => {
4888 return Err(err);
4889 }
4890 }
4891 });
4892 }
4893 Field::Abstract => {
4894 if r#abstract_property.is_some() {
4895 return Err(<A::Error as de::Error>::duplicate_field(
4896 "abstract",
4897 ));
4898 }
4899 r#abstract_property = Some({
4900 struct DeserializeWith(Vec<AbstractProperty>);
4901 impl<'de> Deserialize<'de> for DeserializeWith {
4902 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4903 where
4904 D: Deserializer<'de>,
4905 {
4906 Ok(DeserializeWith(serde_with::As::<
4907 serde_with::OneOrMany<serde_with::Same>,
4908 >::deserialize(deserializer)?))
4909 }
4910 }
4911 match map.next_value::<DeserializeWith>() {
4912 Ok(deserialize_with) => deserialize_with.0,
4913 Err(err) => {
4914 return Err(err);
4915 }
4916 }
4917 });
4918 }
4919 Field::AccessMode => {
4920 if r#access_mode_property.is_some() {
4921 return Err(<A::Error as de::Error>::duplicate_field(
4922 "accessMode",
4923 ));
4924 }
4925 r#access_mode_property = Some({
4926 struct DeserializeWith(Vec<AccessModeProperty>);
4927 impl<'de> Deserialize<'de> for DeserializeWith {
4928 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4929 where
4930 D: Deserializer<'de>,
4931 {
4932 Ok(DeserializeWith(serde_with::As::<
4933 serde_with::OneOrMany<serde_with::Same>,
4934 >::deserialize(deserializer)?))
4935 }
4936 }
4937 match map.next_value::<DeserializeWith>() {
4938 Ok(deserialize_with) => deserialize_with.0,
4939 Err(err) => {
4940 return Err(err);
4941 }
4942 }
4943 });
4944 }
4945 Field::AccessModeSufficient => {
4946 if r#access_mode_sufficient_property.is_some() {
4947 return Err(<A::Error as de::Error>::duplicate_field(
4948 "accessModeSufficient",
4949 ));
4950 }
4951 r#access_mode_sufficient_property = Some({
4952 struct DeserializeWith(Vec<AccessModeSufficientProperty>);
4953 impl<'de> Deserialize<'de> for DeserializeWith {
4954 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4955 where
4956 D: Deserializer<'de>,
4957 {
4958 Ok(DeserializeWith(serde_with::As::<
4959 serde_with::OneOrMany<serde_with::Same>,
4960 >::deserialize(deserializer)?))
4961 }
4962 }
4963 match map.next_value::<DeserializeWith>() {
4964 Ok(deserialize_with) => deserialize_with.0,
4965 Err(err) => {
4966 return Err(err);
4967 }
4968 }
4969 });
4970 }
4971 Field::AccessibilityApi => {
4972 if r#accessibility_api_property.is_some() {
4973 return Err(<A::Error as de::Error>::duplicate_field(
4974 "accessibilityAPI",
4975 ));
4976 }
4977 r#accessibility_api_property = Some({
4978 struct DeserializeWith(Vec<AccessibilityApiProperty>);
4979 impl<'de> Deserialize<'de> for DeserializeWith {
4980 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
4981 where
4982 D: Deserializer<'de>,
4983 {
4984 Ok(DeserializeWith(serde_with::As::<
4985 serde_with::OneOrMany<serde_with::Same>,
4986 >::deserialize(deserializer)?))
4987 }
4988 }
4989 match map.next_value::<DeserializeWith>() {
4990 Ok(deserialize_with) => deserialize_with.0,
4991 Err(err) => {
4992 return Err(err);
4993 }
4994 }
4995 });
4996 }
4997 Field::AccessibilityControl => {
4998 if r#accessibility_control_property.is_some() {
4999 return Err(<A::Error as de::Error>::duplicate_field(
5000 "accessibilityControl",
5001 ));
5002 }
5003 r#accessibility_control_property = Some({
5004 struct DeserializeWith(Vec<AccessibilityControlProperty>);
5005 impl<'de> Deserialize<'de> for DeserializeWith {
5006 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5007 where
5008 D: Deserializer<'de>,
5009 {
5010 Ok(DeserializeWith(serde_with::As::<
5011 serde_with::OneOrMany<serde_with::Same>,
5012 >::deserialize(deserializer)?))
5013 }
5014 }
5015 match map.next_value::<DeserializeWith>() {
5016 Ok(deserialize_with) => deserialize_with.0,
5017 Err(err) => {
5018 return Err(err);
5019 }
5020 }
5021 });
5022 }
5023 Field::AccessibilityFeature => {
5024 if r#accessibility_feature_property.is_some() {
5025 return Err(<A::Error as de::Error>::duplicate_field(
5026 "accessibilityFeature",
5027 ));
5028 }
5029 r#accessibility_feature_property = Some({
5030 struct DeserializeWith(Vec<AccessibilityFeatureProperty>);
5031 impl<'de> Deserialize<'de> for DeserializeWith {
5032 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5033 where
5034 D: Deserializer<'de>,
5035 {
5036 Ok(DeserializeWith(serde_with::As::<
5037 serde_with::OneOrMany<serde_with::Same>,
5038 >::deserialize(deserializer)?))
5039 }
5040 }
5041 match map.next_value::<DeserializeWith>() {
5042 Ok(deserialize_with) => deserialize_with.0,
5043 Err(err) => {
5044 return Err(err);
5045 }
5046 }
5047 });
5048 }
5049 Field::AccessibilityHazard => {
5050 if r#accessibility_hazard_property.is_some() {
5051 return Err(<A::Error as de::Error>::duplicate_field(
5052 "accessibilityHazard",
5053 ));
5054 }
5055 r#accessibility_hazard_property = Some({
5056 struct DeserializeWith(Vec<AccessibilityHazardProperty>);
5057 impl<'de> Deserialize<'de> for DeserializeWith {
5058 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5059 where
5060 D: Deserializer<'de>,
5061 {
5062 Ok(DeserializeWith(serde_with::As::<
5063 serde_with::OneOrMany<serde_with::Same>,
5064 >::deserialize(deserializer)?))
5065 }
5066 }
5067 match map.next_value::<DeserializeWith>() {
5068 Ok(deserialize_with) => deserialize_with.0,
5069 Err(err) => {
5070 return Err(err);
5071 }
5072 }
5073 });
5074 }
5075 Field::AccessibilitySummary => {
5076 if r#accessibility_summary_property.is_some() {
5077 return Err(<A::Error as de::Error>::duplicate_field(
5078 "accessibilitySummary",
5079 ));
5080 }
5081 r#accessibility_summary_property = Some({
5082 struct DeserializeWith(Vec<AccessibilitySummaryProperty>);
5083 impl<'de> Deserialize<'de> for DeserializeWith {
5084 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5085 where
5086 D: Deserializer<'de>,
5087 {
5088 Ok(DeserializeWith(serde_with::As::<
5089 serde_with::OneOrMany<serde_with::Same>,
5090 >::deserialize(deserializer)?))
5091 }
5092 }
5093 match map.next_value::<DeserializeWith>() {
5094 Ok(deserialize_with) => deserialize_with.0,
5095 Err(err) => {
5096 return Err(err);
5097 }
5098 }
5099 });
5100 }
5101 Field::AccountablePerson => {
5102 if r#accountable_person_property.is_some() {
5103 return Err(<A::Error as de::Error>::duplicate_field(
5104 "accountablePerson",
5105 ));
5106 }
5107 r#accountable_person_property = Some({
5108 struct DeserializeWith(Vec<AccountablePersonProperty>);
5109 impl<'de> Deserialize<'de> for DeserializeWith {
5110 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5111 where
5112 D: Deserializer<'de>,
5113 {
5114 Ok(DeserializeWith(serde_with::As::<
5115 serde_with::OneOrMany<serde_with::Same>,
5116 >::deserialize(deserializer)?))
5117 }
5118 }
5119 match map.next_value::<DeserializeWith>() {
5120 Ok(deserialize_with) => deserialize_with.0,
5121 Err(err) => {
5122 return Err(err);
5123 }
5124 }
5125 });
5126 }
5127 Field::AcquireLicensePage => {
5128 if r#acquire_license_page_property.is_some() {
5129 return Err(<A::Error as de::Error>::duplicate_field(
5130 "acquireLicensePage",
5131 ));
5132 }
5133 r#acquire_license_page_property = Some({
5134 struct DeserializeWith(Vec<AcquireLicensePageProperty>);
5135 impl<'de> Deserialize<'de> for DeserializeWith {
5136 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5137 where
5138 D: Deserializer<'de>,
5139 {
5140 Ok(DeserializeWith(serde_with::As::<
5141 serde_with::OneOrMany<serde_with::Same>,
5142 >::deserialize(deserializer)?))
5143 }
5144 }
5145 match map.next_value::<DeserializeWith>() {
5146 Ok(deserialize_with) => deserialize_with.0,
5147 Err(err) => {
5148 return Err(err);
5149 }
5150 }
5151 });
5152 }
5153 Field::AggregateRating => {
5154 if r#aggregate_rating_property.is_some() {
5155 return Err(<A::Error as de::Error>::duplicate_field(
5156 "aggregateRating",
5157 ));
5158 }
5159 r#aggregate_rating_property = Some({
5160 struct DeserializeWith(Vec<AggregateRatingProperty>);
5161 impl<'de> Deserialize<'de> for DeserializeWith {
5162 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5163 where
5164 D: Deserializer<'de>,
5165 {
5166 Ok(DeserializeWith(serde_with::As::<
5167 serde_with::OneOrMany<serde_with::Same>,
5168 >::deserialize(deserializer)?))
5169 }
5170 }
5171 match map.next_value::<DeserializeWith>() {
5172 Ok(deserialize_with) => deserialize_with.0,
5173 Err(err) => {
5174 return Err(err);
5175 }
5176 }
5177 });
5178 }
5179 Field::AlternativeHeadline => {
5180 if r#alternative_headline_property.is_some() {
5181 return Err(<A::Error as de::Error>::duplicate_field(
5182 "alternativeHeadline",
5183 ));
5184 }
5185 r#alternative_headline_property = Some({
5186 struct DeserializeWith(Vec<AlternativeHeadlineProperty>);
5187 impl<'de> Deserialize<'de> for DeserializeWith {
5188 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5189 where
5190 D: Deserializer<'de>,
5191 {
5192 Ok(DeserializeWith(serde_with::As::<
5193 serde_with::OneOrMany<serde_with::Same>,
5194 >::deserialize(deserializer)?))
5195 }
5196 }
5197 match map.next_value::<DeserializeWith>() {
5198 Ok(deserialize_with) => deserialize_with.0,
5199 Err(err) => {
5200 return Err(err);
5201 }
5202 }
5203 });
5204 }
5205 Field::ArchivedAt => {
5206 if r#archived_at_property.is_some() {
5207 return Err(<A::Error as de::Error>::duplicate_field(
5208 "archivedAt",
5209 ));
5210 }
5211 r#archived_at_property = Some({
5212 struct DeserializeWith(Vec<ArchivedAtProperty>);
5213 impl<'de> Deserialize<'de> for DeserializeWith {
5214 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5215 where
5216 D: Deserializer<'de>,
5217 {
5218 Ok(DeserializeWith(serde_with::As::<
5219 serde_with::OneOrMany<serde_with::Same>,
5220 >::deserialize(deserializer)?))
5221 }
5222 }
5223 match map.next_value::<DeserializeWith>() {
5224 Ok(deserialize_with) => deserialize_with.0,
5225 Err(err) => {
5226 return Err(err);
5227 }
5228 }
5229 });
5230 }
5231 Field::Assesses => {
5232 if r#assesses_property.is_some() {
5233 return Err(<A::Error as de::Error>::duplicate_field(
5234 "assesses",
5235 ));
5236 }
5237 r#assesses_property = Some({
5238 struct DeserializeWith(Vec<AssessesProperty>);
5239 impl<'de> Deserialize<'de> for DeserializeWith {
5240 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5241 where
5242 D: Deserializer<'de>,
5243 {
5244 Ok(DeserializeWith(serde_with::As::<
5245 serde_with::OneOrMany<serde_with::Same>,
5246 >::deserialize(deserializer)?))
5247 }
5248 }
5249 match map.next_value::<DeserializeWith>() {
5250 Ok(deserialize_with) => deserialize_with.0,
5251 Err(err) => {
5252 return Err(err);
5253 }
5254 }
5255 });
5256 }
5257 Field::AssociatedMedia => {
5258 if r#associated_media_property.is_some() {
5259 return Err(<A::Error as de::Error>::duplicate_field(
5260 "associatedMedia",
5261 ));
5262 }
5263 r#associated_media_property = Some({
5264 struct DeserializeWith(Vec<AssociatedMediaProperty>);
5265 impl<'de> Deserialize<'de> for DeserializeWith {
5266 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5267 where
5268 D: Deserializer<'de>,
5269 {
5270 Ok(DeserializeWith(serde_with::As::<
5271 serde_with::OneOrMany<serde_with::Same>,
5272 >::deserialize(deserializer)?))
5273 }
5274 }
5275 match map.next_value::<DeserializeWith>() {
5276 Ok(deserialize_with) => deserialize_with.0,
5277 Err(err) => {
5278 return Err(err);
5279 }
5280 }
5281 });
5282 }
5283 Field::Audience => {
5284 if r#audience_property.is_some() {
5285 return Err(<A::Error as de::Error>::duplicate_field(
5286 "audience",
5287 ));
5288 }
5289 r#audience_property = Some({
5290 struct DeserializeWith(Vec<AudienceProperty>);
5291 impl<'de> Deserialize<'de> for DeserializeWith {
5292 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5293 where
5294 D: Deserializer<'de>,
5295 {
5296 Ok(DeserializeWith(serde_with::As::<
5297 serde_with::OneOrMany<serde_with::Same>,
5298 >::deserialize(deserializer)?))
5299 }
5300 }
5301 match map.next_value::<DeserializeWith>() {
5302 Ok(deserialize_with) => deserialize_with.0,
5303 Err(err) => {
5304 return Err(err);
5305 }
5306 }
5307 });
5308 }
5309 Field::Audio => {
5310 if r#audio_property.is_some() {
5311 return Err(<A::Error as de::Error>::duplicate_field("audio"));
5312 }
5313 r#audio_property = Some({
5314 struct DeserializeWith(Vec<AudioProperty>);
5315 impl<'de> Deserialize<'de> for DeserializeWith {
5316 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5317 where
5318 D: Deserializer<'de>,
5319 {
5320 Ok(DeserializeWith(serde_with::As::<
5321 serde_with::OneOrMany<serde_with::Same>,
5322 >::deserialize(deserializer)?))
5323 }
5324 }
5325 match map.next_value::<DeserializeWith>() {
5326 Ok(deserialize_with) => deserialize_with.0,
5327 Err(err) => {
5328 return Err(err);
5329 }
5330 }
5331 });
5332 }
5333 Field::Author => {
5334 if r#author_property.is_some() {
5335 return Err(<A::Error as de::Error>::duplicate_field("author"));
5336 }
5337 r#author_property = Some({
5338 struct DeserializeWith(Vec<AuthorProperty>);
5339 impl<'de> Deserialize<'de> for DeserializeWith {
5340 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5341 where
5342 D: Deserializer<'de>,
5343 {
5344 Ok(DeserializeWith(serde_with::As::<
5345 serde_with::OneOrMany<serde_with::Same>,
5346 >::deserialize(deserializer)?))
5347 }
5348 }
5349 match map.next_value::<DeserializeWith>() {
5350 Ok(deserialize_with) => deserialize_with.0,
5351 Err(err) => {
5352 return Err(err);
5353 }
5354 }
5355 });
5356 }
5357 Field::Award => {
5358 if r#award_property.is_some() {
5359 return Err(<A::Error as de::Error>::duplicate_field("award"));
5360 }
5361 r#award_property = Some({
5362 struct DeserializeWith(Vec<AwardProperty>);
5363 impl<'de> Deserialize<'de> for DeserializeWith {
5364 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5365 where
5366 D: Deserializer<'de>,
5367 {
5368 Ok(DeserializeWith(serde_with::As::<
5369 serde_with::OneOrMany<serde_with::Same>,
5370 >::deserialize(deserializer)?))
5371 }
5372 }
5373 match map.next_value::<DeserializeWith>() {
5374 Ok(deserialize_with) => deserialize_with.0,
5375 Err(err) => {
5376 return Err(err);
5377 }
5378 }
5379 });
5380 }
5381 Field::Awards => {
5382 if r#awards_property.is_some() {
5383 return Err(<A::Error as de::Error>::duplicate_field("awards"));
5384 }
5385 r#awards_property = Some({
5386 struct DeserializeWith(Vec<AwardsProperty>);
5387 impl<'de> Deserialize<'de> for DeserializeWith {
5388 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5389 where
5390 D: Deserializer<'de>,
5391 {
5392 Ok(DeserializeWith(serde_with::As::<
5393 serde_with::OneOrMany<serde_with::Same>,
5394 >::deserialize(deserializer)?))
5395 }
5396 }
5397 match map.next_value::<DeserializeWith>() {
5398 Ok(deserialize_with) => deserialize_with.0,
5399 Err(err) => {
5400 return Err(err);
5401 }
5402 }
5403 });
5404 }
5405 Field::Character => {
5406 if r#character_property.is_some() {
5407 return Err(<A::Error as de::Error>::duplicate_field(
5408 "character",
5409 ));
5410 }
5411 r#character_property = Some({
5412 struct DeserializeWith(Vec<CharacterProperty>);
5413 impl<'de> Deserialize<'de> for DeserializeWith {
5414 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5415 where
5416 D: Deserializer<'de>,
5417 {
5418 Ok(DeserializeWith(serde_with::As::<
5419 serde_with::OneOrMany<serde_with::Same>,
5420 >::deserialize(deserializer)?))
5421 }
5422 }
5423 match map.next_value::<DeserializeWith>() {
5424 Ok(deserialize_with) => deserialize_with.0,
5425 Err(err) => {
5426 return Err(err);
5427 }
5428 }
5429 });
5430 }
5431 Field::Citation => {
5432 if r#citation_property.is_some() {
5433 return Err(<A::Error as de::Error>::duplicate_field(
5434 "citation",
5435 ));
5436 }
5437 r#citation_property = Some({
5438 struct DeserializeWith(Vec<CitationProperty>);
5439 impl<'de> Deserialize<'de> for DeserializeWith {
5440 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5441 where
5442 D: Deserializer<'de>,
5443 {
5444 Ok(DeserializeWith(serde_with::As::<
5445 serde_with::OneOrMany<serde_with::Same>,
5446 >::deserialize(deserializer)?))
5447 }
5448 }
5449 match map.next_value::<DeserializeWith>() {
5450 Ok(deserialize_with) => deserialize_with.0,
5451 Err(err) => {
5452 return Err(err);
5453 }
5454 }
5455 });
5456 }
5457 Field::Comment => {
5458 if r#comment_property.is_some() {
5459 return Err(<A::Error as de::Error>::duplicate_field(
5460 "comment",
5461 ));
5462 }
5463 r#comment_property = Some({
5464 struct DeserializeWith(Vec<CommentProperty>);
5465 impl<'de> Deserialize<'de> for DeserializeWith {
5466 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5467 where
5468 D: Deserializer<'de>,
5469 {
5470 Ok(DeserializeWith(serde_with::As::<
5471 serde_with::OneOrMany<serde_with::Same>,
5472 >::deserialize(deserializer)?))
5473 }
5474 }
5475 match map.next_value::<DeserializeWith>() {
5476 Ok(deserialize_with) => deserialize_with.0,
5477 Err(err) => {
5478 return Err(err);
5479 }
5480 }
5481 });
5482 }
5483 Field::CommentCount => {
5484 if r#comment_count_property.is_some() {
5485 return Err(<A::Error as de::Error>::duplicate_field(
5486 "commentCount",
5487 ));
5488 }
5489 r#comment_count_property = Some({
5490 struct DeserializeWith(Vec<CommentCountProperty>);
5491 impl<'de> Deserialize<'de> for DeserializeWith {
5492 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5493 where
5494 D: Deserializer<'de>,
5495 {
5496 Ok(DeserializeWith(serde_with::As::<
5497 serde_with::OneOrMany<serde_with::Same>,
5498 >::deserialize(deserializer)?))
5499 }
5500 }
5501 match map.next_value::<DeserializeWith>() {
5502 Ok(deserialize_with) => deserialize_with.0,
5503 Err(err) => {
5504 return Err(err);
5505 }
5506 }
5507 });
5508 }
5509 Field::ConditionsOfAccess => {
5510 if r#conditions_of_access_property.is_some() {
5511 return Err(<A::Error as de::Error>::duplicate_field(
5512 "conditionsOfAccess",
5513 ));
5514 }
5515 r#conditions_of_access_property = Some({
5516 struct DeserializeWith(Vec<ConditionsOfAccessProperty>);
5517 impl<'de> Deserialize<'de> for DeserializeWith {
5518 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5519 where
5520 D: Deserializer<'de>,
5521 {
5522 Ok(DeserializeWith(serde_with::As::<
5523 serde_with::OneOrMany<serde_with::Same>,
5524 >::deserialize(deserializer)?))
5525 }
5526 }
5527 match map.next_value::<DeserializeWith>() {
5528 Ok(deserialize_with) => deserialize_with.0,
5529 Err(err) => {
5530 return Err(err);
5531 }
5532 }
5533 });
5534 }
5535 Field::ContentLocation => {
5536 if r#content_location_property.is_some() {
5537 return Err(<A::Error as de::Error>::duplicate_field(
5538 "contentLocation",
5539 ));
5540 }
5541 r#content_location_property = Some({
5542 struct DeserializeWith(Vec<ContentLocationProperty>);
5543 impl<'de> Deserialize<'de> for DeserializeWith {
5544 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5545 where
5546 D: Deserializer<'de>,
5547 {
5548 Ok(DeserializeWith(serde_with::As::<
5549 serde_with::OneOrMany<serde_with::Same>,
5550 >::deserialize(deserializer)?))
5551 }
5552 }
5553 match map.next_value::<DeserializeWith>() {
5554 Ok(deserialize_with) => deserialize_with.0,
5555 Err(err) => {
5556 return Err(err);
5557 }
5558 }
5559 });
5560 }
5561 Field::ContentRating => {
5562 if r#content_rating_property.is_some() {
5563 return Err(<A::Error as de::Error>::duplicate_field(
5564 "contentRating",
5565 ));
5566 }
5567 r#content_rating_property = Some({
5568 struct DeserializeWith(Vec<ContentRatingProperty>);
5569 impl<'de> Deserialize<'de> for DeserializeWith {
5570 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5571 where
5572 D: Deserializer<'de>,
5573 {
5574 Ok(DeserializeWith(serde_with::As::<
5575 serde_with::OneOrMany<serde_with::Same>,
5576 >::deserialize(deserializer)?))
5577 }
5578 }
5579 match map.next_value::<DeserializeWith>() {
5580 Ok(deserialize_with) => deserialize_with.0,
5581 Err(err) => {
5582 return Err(err);
5583 }
5584 }
5585 });
5586 }
5587 Field::ContentReferenceTime => {
5588 if r#content_reference_time_property.is_some() {
5589 return Err(<A::Error as de::Error>::duplicate_field(
5590 "contentReferenceTime",
5591 ));
5592 }
5593 r#content_reference_time_property = Some({
5594 struct DeserializeWith(Vec<ContentReferenceTimeProperty>);
5595 impl<'de> Deserialize<'de> for DeserializeWith {
5596 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5597 where
5598 D: Deserializer<'de>,
5599 {
5600 Ok(DeserializeWith(serde_with::As::<
5601 serde_with::OneOrMany<serde_with::Same>,
5602 >::deserialize(deserializer)?))
5603 }
5604 }
5605 match map.next_value::<DeserializeWith>() {
5606 Ok(deserialize_with) => deserialize_with.0,
5607 Err(err) => {
5608 return Err(err);
5609 }
5610 }
5611 });
5612 }
5613 Field::Contributor => {
5614 if r#contributor_property.is_some() {
5615 return Err(<A::Error as de::Error>::duplicate_field(
5616 "contributor",
5617 ));
5618 }
5619 r#contributor_property = Some({
5620 struct DeserializeWith(Vec<ContributorProperty>);
5621 impl<'de> Deserialize<'de> for DeserializeWith {
5622 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5623 where
5624 D: Deserializer<'de>,
5625 {
5626 Ok(DeserializeWith(serde_with::As::<
5627 serde_with::OneOrMany<serde_with::Same>,
5628 >::deserialize(deserializer)?))
5629 }
5630 }
5631 match map.next_value::<DeserializeWith>() {
5632 Ok(deserialize_with) => deserialize_with.0,
5633 Err(err) => {
5634 return Err(err);
5635 }
5636 }
5637 });
5638 }
5639 Field::CopyrightHolder => {
5640 if r#copyright_holder_property.is_some() {
5641 return Err(<A::Error as de::Error>::duplicate_field(
5642 "copyrightHolder",
5643 ));
5644 }
5645 r#copyright_holder_property = Some({
5646 struct DeserializeWith(Vec<CopyrightHolderProperty>);
5647 impl<'de> Deserialize<'de> for DeserializeWith {
5648 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5649 where
5650 D: Deserializer<'de>,
5651 {
5652 Ok(DeserializeWith(serde_with::As::<
5653 serde_with::OneOrMany<serde_with::Same>,
5654 >::deserialize(deserializer)?))
5655 }
5656 }
5657 match map.next_value::<DeserializeWith>() {
5658 Ok(deserialize_with) => deserialize_with.0,
5659 Err(err) => {
5660 return Err(err);
5661 }
5662 }
5663 });
5664 }
5665 Field::CopyrightNotice => {
5666 if r#copyright_notice_property.is_some() {
5667 return Err(<A::Error as de::Error>::duplicate_field(
5668 "copyrightNotice",
5669 ));
5670 }
5671 r#copyright_notice_property = Some({
5672 struct DeserializeWith(Vec<CopyrightNoticeProperty>);
5673 impl<'de> Deserialize<'de> for DeserializeWith {
5674 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5675 where
5676 D: Deserializer<'de>,
5677 {
5678 Ok(DeserializeWith(serde_with::As::<
5679 serde_with::OneOrMany<serde_with::Same>,
5680 >::deserialize(deserializer)?))
5681 }
5682 }
5683 match map.next_value::<DeserializeWith>() {
5684 Ok(deserialize_with) => deserialize_with.0,
5685 Err(err) => {
5686 return Err(err);
5687 }
5688 }
5689 });
5690 }
5691 Field::CopyrightYear => {
5692 if r#copyright_year_property.is_some() {
5693 return Err(<A::Error as de::Error>::duplicate_field(
5694 "copyrightYear",
5695 ));
5696 }
5697 r#copyright_year_property = Some({
5698 struct DeserializeWith(Vec<CopyrightYearProperty>);
5699 impl<'de> Deserialize<'de> for DeserializeWith {
5700 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5701 where
5702 D: Deserializer<'de>,
5703 {
5704 Ok(DeserializeWith(serde_with::As::<
5705 serde_with::OneOrMany<serde_with::Same>,
5706 >::deserialize(deserializer)?))
5707 }
5708 }
5709 match map.next_value::<DeserializeWith>() {
5710 Ok(deserialize_with) => deserialize_with.0,
5711 Err(err) => {
5712 return Err(err);
5713 }
5714 }
5715 });
5716 }
5717 Field::Correction => {
5718 if r#correction_property.is_some() {
5719 return Err(<A::Error as de::Error>::duplicate_field(
5720 "correction",
5721 ));
5722 }
5723 r#correction_property = Some({
5724 struct DeserializeWith(Vec<CorrectionProperty>);
5725 impl<'de> Deserialize<'de> for DeserializeWith {
5726 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5727 where
5728 D: Deserializer<'de>,
5729 {
5730 Ok(DeserializeWith(serde_with::As::<
5731 serde_with::OneOrMany<serde_with::Same>,
5732 >::deserialize(deserializer)?))
5733 }
5734 }
5735 match map.next_value::<DeserializeWith>() {
5736 Ok(deserialize_with) => deserialize_with.0,
5737 Err(err) => {
5738 return Err(err);
5739 }
5740 }
5741 });
5742 }
5743 Field::CountryOfOrigin => {
5744 if r#country_of_origin_property.is_some() {
5745 return Err(<A::Error as de::Error>::duplicate_field(
5746 "countryOfOrigin",
5747 ));
5748 }
5749 r#country_of_origin_property = Some({
5750 struct DeserializeWith(Vec<CountryOfOriginProperty>);
5751 impl<'de> Deserialize<'de> for DeserializeWith {
5752 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5753 where
5754 D: Deserializer<'de>,
5755 {
5756 Ok(DeserializeWith(serde_with::As::<
5757 serde_with::OneOrMany<serde_with::Same>,
5758 >::deserialize(deserializer)?))
5759 }
5760 }
5761 match map.next_value::<DeserializeWith>() {
5762 Ok(deserialize_with) => deserialize_with.0,
5763 Err(err) => {
5764 return Err(err);
5765 }
5766 }
5767 });
5768 }
5769 Field::CreativeWorkStatus => {
5770 if r#creative_work_status_property.is_some() {
5771 return Err(<A::Error as de::Error>::duplicate_field(
5772 "creativeWorkStatus",
5773 ));
5774 }
5775 r#creative_work_status_property = Some({
5776 struct DeserializeWith(Vec<CreativeWorkStatusProperty>);
5777 impl<'de> Deserialize<'de> for DeserializeWith {
5778 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5779 where
5780 D: Deserializer<'de>,
5781 {
5782 Ok(DeserializeWith(serde_with::As::<
5783 serde_with::OneOrMany<serde_with::Same>,
5784 >::deserialize(deserializer)?))
5785 }
5786 }
5787 match map.next_value::<DeserializeWith>() {
5788 Ok(deserialize_with) => deserialize_with.0,
5789 Err(err) => {
5790 return Err(err);
5791 }
5792 }
5793 });
5794 }
5795 Field::Creator => {
5796 if r#creator_property.is_some() {
5797 return Err(<A::Error as de::Error>::duplicate_field(
5798 "creator",
5799 ));
5800 }
5801 r#creator_property = Some({
5802 struct DeserializeWith(Vec<CreatorProperty>);
5803 impl<'de> Deserialize<'de> for DeserializeWith {
5804 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5805 where
5806 D: Deserializer<'de>,
5807 {
5808 Ok(DeserializeWith(serde_with::As::<
5809 serde_with::OneOrMany<serde_with::Same>,
5810 >::deserialize(deserializer)?))
5811 }
5812 }
5813 match map.next_value::<DeserializeWith>() {
5814 Ok(deserialize_with) => deserialize_with.0,
5815 Err(err) => {
5816 return Err(err);
5817 }
5818 }
5819 });
5820 }
5821 Field::CreditText => {
5822 if r#credit_text_property.is_some() {
5823 return Err(<A::Error as de::Error>::duplicate_field(
5824 "creditText",
5825 ));
5826 }
5827 r#credit_text_property = Some({
5828 struct DeserializeWith(Vec<CreditTextProperty>);
5829 impl<'de> Deserialize<'de> for DeserializeWith {
5830 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5831 where
5832 D: Deserializer<'de>,
5833 {
5834 Ok(DeserializeWith(serde_with::As::<
5835 serde_with::OneOrMany<serde_with::Same>,
5836 >::deserialize(deserializer)?))
5837 }
5838 }
5839 match map.next_value::<DeserializeWith>() {
5840 Ok(deserialize_with) => deserialize_with.0,
5841 Err(err) => {
5842 return Err(err);
5843 }
5844 }
5845 });
5846 }
5847 Field::DateCreated => {
5848 if r#date_created_property.is_some() {
5849 return Err(<A::Error as de::Error>::duplicate_field(
5850 "dateCreated",
5851 ));
5852 }
5853 r#date_created_property = Some({
5854 struct DeserializeWith(Vec<DateCreatedProperty>);
5855 impl<'de> Deserialize<'de> for DeserializeWith {
5856 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5857 where
5858 D: Deserializer<'de>,
5859 {
5860 Ok(DeserializeWith(serde_with::As::<
5861 serde_with::OneOrMany<serde_with::Same>,
5862 >::deserialize(deserializer)?))
5863 }
5864 }
5865 match map.next_value::<DeserializeWith>() {
5866 Ok(deserialize_with) => deserialize_with.0,
5867 Err(err) => {
5868 return Err(err);
5869 }
5870 }
5871 });
5872 }
5873 Field::DateModified => {
5874 if r#date_modified_property.is_some() {
5875 return Err(<A::Error as de::Error>::duplicate_field(
5876 "dateModified",
5877 ));
5878 }
5879 r#date_modified_property = Some({
5880 struct DeserializeWith(Vec<DateModifiedProperty>);
5881 impl<'de> Deserialize<'de> for DeserializeWith {
5882 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5883 where
5884 D: Deserializer<'de>,
5885 {
5886 Ok(DeserializeWith(serde_with::As::<
5887 serde_with::OneOrMany<serde_with::Same>,
5888 >::deserialize(deserializer)?))
5889 }
5890 }
5891 match map.next_value::<DeserializeWith>() {
5892 Ok(deserialize_with) => deserialize_with.0,
5893 Err(err) => {
5894 return Err(err);
5895 }
5896 }
5897 });
5898 }
5899 Field::DatePublished => {
5900 if r#date_published_property.is_some() {
5901 return Err(<A::Error as de::Error>::duplicate_field(
5902 "datePublished",
5903 ));
5904 }
5905 r#date_published_property = Some({
5906 struct DeserializeWith(Vec<DatePublishedProperty>);
5907 impl<'de> Deserialize<'de> for DeserializeWith {
5908 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5909 where
5910 D: Deserializer<'de>,
5911 {
5912 Ok(DeserializeWith(serde_with::As::<
5913 serde_with::OneOrMany<serde_with::Same>,
5914 >::deserialize(deserializer)?))
5915 }
5916 }
5917 match map.next_value::<DeserializeWith>() {
5918 Ok(deserialize_with) => deserialize_with.0,
5919 Err(err) => {
5920 return Err(err);
5921 }
5922 }
5923 });
5924 }
5925 Field::DiscussionUrl => {
5926 if r#discussion_url_property.is_some() {
5927 return Err(<A::Error as de::Error>::duplicate_field(
5928 "discussionUrl",
5929 ));
5930 }
5931 r#discussion_url_property = Some({
5932 struct DeserializeWith(Vec<DiscussionUrlProperty>);
5933 impl<'de> Deserialize<'de> for DeserializeWith {
5934 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5935 where
5936 D: Deserializer<'de>,
5937 {
5938 Ok(DeserializeWith(serde_with::As::<
5939 serde_with::OneOrMany<serde_with::Same>,
5940 >::deserialize(deserializer)?))
5941 }
5942 }
5943 match map.next_value::<DeserializeWith>() {
5944 Ok(deserialize_with) => deserialize_with.0,
5945 Err(err) => {
5946 return Err(err);
5947 }
5948 }
5949 });
5950 }
5951 Field::EditEidr => {
5952 if r#edit_eidr_property.is_some() {
5953 return Err(<A::Error as de::Error>::duplicate_field(
5954 "editEIDR",
5955 ));
5956 }
5957 r#edit_eidr_property = Some({
5958 struct DeserializeWith(Vec<EditEidrProperty>);
5959 impl<'de> Deserialize<'de> for DeserializeWith {
5960 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5961 where
5962 D: Deserializer<'de>,
5963 {
5964 Ok(DeserializeWith(serde_with::As::<
5965 serde_with::OneOrMany<serde_with::Same>,
5966 >::deserialize(deserializer)?))
5967 }
5968 }
5969 match map.next_value::<DeserializeWith>() {
5970 Ok(deserialize_with) => deserialize_with.0,
5971 Err(err) => {
5972 return Err(err);
5973 }
5974 }
5975 });
5976 }
5977 Field::Editor => {
5978 if r#editor_property.is_some() {
5979 return Err(<A::Error as de::Error>::duplicate_field("editor"));
5980 }
5981 r#editor_property = Some({
5982 struct DeserializeWith(Vec<EditorProperty>);
5983 impl<'de> Deserialize<'de> for DeserializeWith {
5984 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
5985 where
5986 D: Deserializer<'de>,
5987 {
5988 Ok(DeserializeWith(serde_with::As::<
5989 serde_with::OneOrMany<serde_with::Same>,
5990 >::deserialize(deserializer)?))
5991 }
5992 }
5993 match map.next_value::<DeserializeWith>() {
5994 Ok(deserialize_with) => deserialize_with.0,
5995 Err(err) => {
5996 return Err(err);
5997 }
5998 }
5999 });
6000 }
6001 Field::EducationalAlignment => {
6002 if r#educational_alignment_property.is_some() {
6003 return Err(<A::Error as de::Error>::duplicate_field(
6004 "educationalAlignment",
6005 ));
6006 }
6007 r#educational_alignment_property = Some({
6008 struct DeserializeWith(Vec<EducationalAlignmentProperty>);
6009 impl<'de> Deserialize<'de> for DeserializeWith {
6010 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6011 where
6012 D: Deserializer<'de>,
6013 {
6014 Ok(DeserializeWith(serde_with::As::<
6015 serde_with::OneOrMany<serde_with::Same>,
6016 >::deserialize(deserializer)?))
6017 }
6018 }
6019 match map.next_value::<DeserializeWith>() {
6020 Ok(deserialize_with) => deserialize_with.0,
6021 Err(err) => {
6022 return Err(err);
6023 }
6024 }
6025 });
6026 }
6027 Field::EducationalLevel => {
6028 if r#educational_level_property.is_some() {
6029 return Err(<A::Error as de::Error>::duplicate_field(
6030 "educationalLevel",
6031 ));
6032 }
6033 r#educational_level_property = Some({
6034 struct DeserializeWith(Vec<EducationalLevelProperty>);
6035 impl<'de> Deserialize<'de> for DeserializeWith {
6036 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6037 where
6038 D: Deserializer<'de>,
6039 {
6040 Ok(DeserializeWith(serde_with::As::<
6041 serde_with::OneOrMany<serde_with::Same>,
6042 >::deserialize(deserializer)?))
6043 }
6044 }
6045 match map.next_value::<DeserializeWith>() {
6046 Ok(deserialize_with) => deserialize_with.0,
6047 Err(err) => {
6048 return Err(err);
6049 }
6050 }
6051 });
6052 }
6053 Field::EducationalUse => {
6054 if r#educational_use_property.is_some() {
6055 return Err(<A::Error as de::Error>::duplicate_field(
6056 "educationalUse",
6057 ));
6058 }
6059 r#educational_use_property = Some({
6060 struct DeserializeWith(Vec<EducationalUseProperty>);
6061 impl<'de> Deserialize<'de> for DeserializeWith {
6062 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6063 where
6064 D: Deserializer<'de>,
6065 {
6066 Ok(DeserializeWith(serde_with::As::<
6067 serde_with::OneOrMany<serde_with::Same>,
6068 >::deserialize(deserializer)?))
6069 }
6070 }
6071 match map.next_value::<DeserializeWith>() {
6072 Ok(deserialize_with) => deserialize_with.0,
6073 Err(err) => {
6074 return Err(err);
6075 }
6076 }
6077 });
6078 }
6079 Field::Encoding => {
6080 if r#encoding_property.is_some() {
6081 return Err(<A::Error as de::Error>::duplicate_field(
6082 "encoding",
6083 ));
6084 }
6085 r#encoding_property = Some({
6086 struct DeserializeWith(Vec<EncodingProperty>);
6087 impl<'de> Deserialize<'de> for DeserializeWith {
6088 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6089 where
6090 D: Deserializer<'de>,
6091 {
6092 Ok(DeserializeWith(serde_with::As::<
6093 serde_with::OneOrMany<serde_with::Same>,
6094 >::deserialize(deserializer)?))
6095 }
6096 }
6097 match map.next_value::<DeserializeWith>() {
6098 Ok(deserialize_with) => deserialize_with.0,
6099 Err(err) => {
6100 return Err(err);
6101 }
6102 }
6103 });
6104 }
6105 Field::EncodingFormat => {
6106 if r#encoding_format_property.is_some() {
6107 return Err(<A::Error as de::Error>::duplicate_field(
6108 "encodingFormat",
6109 ));
6110 }
6111 r#encoding_format_property = Some({
6112 struct DeserializeWith(Vec<EncodingFormatProperty>);
6113 impl<'de> Deserialize<'de> for DeserializeWith {
6114 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6115 where
6116 D: Deserializer<'de>,
6117 {
6118 Ok(DeserializeWith(serde_with::As::<
6119 serde_with::OneOrMany<serde_with::Same>,
6120 >::deserialize(deserializer)?))
6121 }
6122 }
6123 match map.next_value::<DeserializeWith>() {
6124 Ok(deserialize_with) => deserialize_with.0,
6125 Err(err) => {
6126 return Err(err);
6127 }
6128 }
6129 });
6130 }
6131 Field::Encodings => {
6132 if r#encodings_property.is_some() {
6133 return Err(<A::Error as de::Error>::duplicate_field(
6134 "encodings",
6135 ));
6136 }
6137 r#encodings_property = Some({
6138 struct DeserializeWith(Vec<EncodingsProperty>);
6139 impl<'de> Deserialize<'de> for DeserializeWith {
6140 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6141 where
6142 D: Deserializer<'de>,
6143 {
6144 Ok(DeserializeWith(serde_with::As::<
6145 serde_with::OneOrMany<serde_with::Same>,
6146 >::deserialize(deserializer)?))
6147 }
6148 }
6149 match map.next_value::<DeserializeWith>() {
6150 Ok(deserialize_with) => deserialize_with.0,
6151 Err(err) => {
6152 return Err(err);
6153 }
6154 }
6155 });
6156 }
6157 Field::ExampleOfWork => {
6158 if r#example_of_work_property.is_some() {
6159 return Err(<A::Error as de::Error>::duplicate_field(
6160 "exampleOfWork",
6161 ));
6162 }
6163 r#example_of_work_property = Some({
6164 struct DeserializeWith(Vec<ExampleOfWorkProperty>);
6165 impl<'de> Deserialize<'de> for DeserializeWith {
6166 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6167 where
6168 D: Deserializer<'de>,
6169 {
6170 Ok(DeserializeWith(serde_with::As::<
6171 serde_with::OneOrMany<serde_with::Same>,
6172 >::deserialize(deserializer)?))
6173 }
6174 }
6175 match map.next_value::<DeserializeWith>() {
6176 Ok(deserialize_with) => deserialize_with.0,
6177 Err(err) => {
6178 return Err(err);
6179 }
6180 }
6181 });
6182 }
6183 Field::Expires => {
6184 if r#expires_property.is_some() {
6185 return Err(<A::Error as de::Error>::duplicate_field(
6186 "expires",
6187 ));
6188 }
6189 r#expires_property = Some({
6190 struct DeserializeWith(Vec<ExpiresProperty>);
6191 impl<'de> Deserialize<'de> for DeserializeWith {
6192 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6193 where
6194 D: Deserializer<'de>,
6195 {
6196 Ok(DeserializeWith(serde_with::As::<
6197 serde_with::OneOrMany<serde_with::Same>,
6198 >::deserialize(deserializer)?))
6199 }
6200 }
6201 match map.next_value::<DeserializeWith>() {
6202 Ok(deserialize_with) => deserialize_with.0,
6203 Err(err) => {
6204 return Err(err);
6205 }
6206 }
6207 });
6208 }
6209 Field::FileFormat => {
6210 if r#file_format_property.is_some() {
6211 return Err(<A::Error as de::Error>::duplicate_field(
6212 "fileFormat",
6213 ));
6214 }
6215 r#file_format_property = Some({
6216 struct DeserializeWith(Vec<FileFormatProperty>);
6217 impl<'de> Deserialize<'de> for DeserializeWith {
6218 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6219 where
6220 D: Deserializer<'de>,
6221 {
6222 Ok(DeserializeWith(serde_with::As::<
6223 serde_with::OneOrMany<serde_with::Same>,
6224 >::deserialize(deserializer)?))
6225 }
6226 }
6227 match map.next_value::<DeserializeWith>() {
6228 Ok(deserialize_with) => deserialize_with.0,
6229 Err(err) => {
6230 return Err(err);
6231 }
6232 }
6233 });
6234 }
6235 Field::Funder => {
6236 if r#funder_property.is_some() {
6237 return Err(<A::Error as de::Error>::duplicate_field("funder"));
6238 }
6239 r#funder_property = Some({
6240 struct DeserializeWith(Vec<FunderProperty>);
6241 impl<'de> Deserialize<'de> for DeserializeWith {
6242 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6243 where
6244 D: Deserializer<'de>,
6245 {
6246 Ok(DeserializeWith(serde_with::As::<
6247 serde_with::OneOrMany<serde_with::Same>,
6248 >::deserialize(deserializer)?))
6249 }
6250 }
6251 match map.next_value::<DeserializeWith>() {
6252 Ok(deserialize_with) => deserialize_with.0,
6253 Err(err) => {
6254 return Err(err);
6255 }
6256 }
6257 });
6258 }
6259 Field::Funding => {
6260 if r#funding_property.is_some() {
6261 return Err(<A::Error as de::Error>::duplicate_field(
6262 "funding",
6263 ));
6264 }
6265 r#funding_property = Some({
6266 struct DeserializeWith(Vec<FundingProperty>);
6267 impl<'de> Deserialize<'de> for DeserializeWith {
6268 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6269 where
6270 D: Deserializer<'de>,
6271 {
6272 Ok(DeserializeWith(serde_with::As::<
6273 serde_with::OneOrMany<serde_with::Same>,
6274 >::deserialize(deserializer)?))
6275 }
6276 }
6277 match map.next_value::<DeserializeWith>() {
6278 Ok(deserialize_with) => deserialize_with.0,
6279 Err(err) => {
6280 return Err(err);
6281 }
6282 }
6283 });
6284 }
6285 Field::Genre => {
6286 if r#genre_property.is_some() {
6287 return Err(<A::Error as de::Error>::duplicate_field("genre"));
6288 }
6289 r#genre_property = Some({
6290 struct DeserializeWith(Vec<GenreProperty>);
6291 impl<'de> Deserialize<'de> for DeserializeWith {
6292 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6293 where
6294 D: Deserializer<'de>,
6295 {
6296 Ok(DeserializeWith(serde_with::As::<
6297 serde_with::OneOrMany<serde_with::Same>,
6298 >::deserialize(deserializer)?))
6299 }
6300 }
6301 match map.next_value::<DeserializeWith>() {
6302 Ok(deserialize_with) => deserialize_with.0,
6303 Err(err) => {
6304 return Err(err);
6305 }
6306 }
6307 });
6308 }
6309 Field::HasPart => {
6310 if r#has_part_property.is_some() {
6311 return Err(<A::Error as de::Error>::duplicate_field(
6312 "hasPart",
6313 ));
6314 }
6315 r#has_part_property = Some({
6316 struct DeserializeWith(Vec<HasPartProperty>);
6317 impl<'de> Deserialize<'de> for DeserializeWith {
6318 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6319 where
6320 D: Deserializer<'de>,
6321 {
6322 Ok(DeserializeWith(serde_with::As::<
6323 serde_with::OneOrMany<serde_with::Same>,
6324 >::deserialize(deserializer)?))
6325 }
6326 }
6327 match map.next_value::<DeserializeWith>() {
6328 Ok(deserialize_with) => deserialize_with.0,
6329 Err(err) => {
6330 return Err(err);
6331 }
6332 }
6333 });
6334 }
6335 Field::Headline => {
6336 if r#headline_property.is_some() {
6337 return Err(<A::Error as de::Error>::duplicate_field(
6338 "headline",
6339 ));
6340 }
6341 r#headline_property = Some({
6342 struct DeserializeWith(Vec<HeadlineProperty>);
6343 impl<'de> Deserialize<'de> for DeserializeWith {
6344 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6345 where
6346 D: Deserializer<'de>,
6347 {
6348 Ok(DeserializeWith(serde_with::As::<
6349 serde_with::OneOrMany<serde_with::Same>,
6350 >::deserialize(deserializer)?))
6351 }
6352 }
6353 match map.next_value::<DeserializeWith>() {
6354 Ok(deserialize_with) => deserialize_with.0,
6355 Err(err) => {
6356 return Err(err);
6357 }
6358 }
6359 });
6360 }
6361 Field::InLanguage => {
6362 if r#in_language_property.is_some() {
6363 return Err(<A::Error as de::Error>::duplicate_field(
6364 "inLanguage",
6365 ));
6366 }
6367 r#in_language_property = Some({
6368 struct DeserializeWith(Vec<InLanguageProperty>);
6369 impl<'de> Deserialize<'de> for DeserializeWith {
6370 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6371 where
6372 D: Deserializer<'de>,
6373 {
6374 Ok(DeserializeWith(serde_with::As::<
6375 serde_with::OneOrMany<serde_with::Same>,
6376 >::deserialize(deserializer)?))
6377 }
6378 }
6379 match map.next_value::<DeserializeWith>() {
6380 Ok(deserialize_with) => deserialize_with.0,
6381 Err(err) => {
6382 return Err(err);
6383 }
6384 }
6385 });
6386 }
6387 Field::InteractionStatistic => {
6388 if r#interaction_statistic_property.is_some() {
6389 return Err(<A::Error as de::Error>::duplicate_field(
6390 "interactionStatistic",
6391 ));
6392 }
6393 r#interaction_statistic_property = Some({
6394 struct DeserializeWith(Vec<InteractionStatisticProperty>);
6395 impl<'de> Deserialize<'de> for DeserializeWith {
6396 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6397 where
6398 D: Deserializer<'de>,
6399 {
6400 Ok(DeserializeWith(serde_with::As::<
6401 serde_with::OneOrMany<serde_with::Same>,
6402 >::deserialize(deserializer)?))
6403 }
6404 }
6405 match map.next_value::<DeserializeWith>() {
6406 Ok(deserialize_with) => deserialize_with.0,
6407 Err(err) => {
6408 return Err(err);
6409 }
6410 }
6411 });
6412 }
6413 Field::InteractivityType => {
6414 if r#interactivity_type_property.is_some() {
6415 return Err(<A::Error as de::Error>::duplicate_field(
6416 "interactivityType",
6417 ));
6418 }
6419 r#interactivity_type_property = Some({
6420 struct DeserializeWith(Vec<InteractivityTypeProperty>);
6421 impl<'de> Deserialize<'de> for DeserializeWith {
6422 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6423 where
6424 D: Deserializer<'de>,
6425 {
6426 Ok(DeserializeWith(serde_with::As::<
6427 serde_with::OneOrMany<serde_with::Same>,
6428 >::deserialize(deserializer)?))
6429 }
6430 }
6431 match map.next_value::<DeserializeWith>() {
6432 Ok(deserialize_with) => deserialize_with.0,
6433 Err(err) => {
6434 return Err(err);
6435 }
6436 }
6437 });
6438 }
6439 Field::InterpretedAsClaim => {
6440 if r#interpreted_as_claim_property.is_some() {
6441 return Err(<A::Error as de::Error>::duplicate_field(
6442 "interpretedAsClaim",
6443 ));
6444 }
6445 r#interpreted_as_claim_property = Some({
6446 struct DeserializeWith(Vec<InterpretedAsClaimProperty>);
6447 impl<'de> Deserialize<'de> for DeserializeWith {
6448 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6449 where
6450 D: Deserializer<'de>,
6451 {
6452 Ok(DeserializeWith(serde_with::As::<
6453 serde_with::OneOrMany<serde_with::Same>,
6454 >::deserialize(deserializer)?))
6455 }
6456 }
6457 match map.next_value::<DeserializeWith>() {
6458 Ok(deserialize_with) => deserialize_with.0,
6459 Err(err) => {
6460 return Err(err);
6461 }
6462 }
6463 });
6464 }
6465 Field::IsAccessibleForFree => {
6466 if r#is_accessible_for_free_property.is_some() {
6467 return Err(<A::Error as de::Error>::duplicate_field(
6468 "isAccessibleForFree",
6469 ));
6470 }
6471 r#is_accessible_for_free_property = Some({
6472 struct DeserializeWith(Vec<IsAccessibleForFreeProperty>);
6473 impl<'de> Deserialize<'de> for DeserializeWith {
6474 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6475 where
6476 D: Deserializer<'de>,
6477 {
6478 Ok(DeserializeWith(serde_with::As::<
6479 serde_with::OneOrMany<serde_with::Same>,
6480 >::deserialize(deserializer)?))
6481 }
6482 }
6483 match map.next_value::<DeserializeWith>() {
6484 Ok(deserialize_with) => deserialize_with.0,
6485 Err(err) => {
6486 return Err(err);
6487 }
6488 }
6489 });
6490 }
6491 Field::IsBasedOn => {
6492 if r#is_based_on_property.is_some() {
6493 return Err(<A::Error as de::Error>::duplicate_field(
6494 "isBasedOn",
6495 ));
6496 }
6497 r#is_based_on_property = Some({
6498 struct DeserializeWith(Vec<IsBasedOnProperty>);
6499 impl<'de> Deserialize<'de> for DeserializeWith {
6500 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6501 where
6502 D: Deserializer<'de>,
6503 {
6504 Ok(DeserializeWith(serde_with::As::<
6505 serde_with::OneOrMany<serde_with::Same>,
6506 >::deserialize(deserializer)?))
6507 }
6508 }
6509 match map.next_value::<DeserializeWith>() {
6510 Ok(deserialize_with) => deserialize_with.0,
6511 Err(err) => {
6512 return Err(err);
6513 }
6514 }
6515 });
6516 }
6517 Field::IsBasedOnUrl => {
6518 if r#is_based_on_url_property.is_some() {
6519 return Err(<A::Error as de::Error>::duplicate_field(
6520 "isBasedOnUrl",
6521 ));
6522 }
6523 r#is_based_on_url_property = Some({
6524 struct DeserializeWith(Vec<IsBasedOnUrlProperty>);
6525 impl<'de> Deserialize<'de> for DeserializeWith {
6526 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6527 where
6528 D: Deserializer<'de>,
6529 {
6530 Ok(DeserializeWith(serde_with::As::<
6531 serde_with::OneOrMany<serde_with::Same>,
6532 >::deserialize(deserializer)?))
6533 }
6534 }
6535 match map.next_value::<DeserializeWith>() {
6536 Ok(deserialize_with) => deserialize_with.0,
6537 Err(err) => {
6538 return Err(err);
6539 }
6540 }
6541 });
6542 }
6543 Field::IsFamilyFriendly => {
6544 if r#is_family_friendly_property.is_some() {
6545 return Err(<A::Error as de::Error>::duplicate_field(
6546 "isFamilyFriendly",
6547 ));
6548 }
6549 r#is_family_friendly_property = Some({
6550 struct DeserializeWith(Vec<IsFamilyFriendlyProperty>);
6551 impl<'de> Deserialize<'de> for DeserializeWith {
6552 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6553 where
6554 D: Deserializer<'de>,
6555 {
6556 Ok(DeserializeWith(serde_with::As::<
6557 serde_with::OneOrMany<serde_with::Same>,
6558 >::deserialize(deserializer)?))
6559 }
6560 }
6561 match map.next_value::<DeserializeWith>() {
6562 Ok(deserialize_with) => deserialize_with.0,
6563 Err(err) => {
6564 return Err(err);
6565 }
6566 }
6567 });
6568 }
6569 Field::IsPartOf => {
6570 if r#is_part_of_property.is_some() {
6571 return Err(<A::Error as de::Error>::duplicate_field(
6572 "isPartOf",
6573 ));
6574 }
6575 r#is_part_of_property = Some({
6576 struct DeserializeWith(Vec<IsPartOfProperty>);
6577 impl<'de> Deserialize<'de> for DeserializeWith {
6578 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6579 where
6580 D: Deserializer<'de>,
6581 {
6582 Ok(DeserializeWith(serde_with::As::<
6583 serde_with::OneOrMany<serde_with::Same>,
6584 >::deserialize(deserializer)?))
6585 }
6586 }
6587 match map.next_value::<DeserializeWith>() {
6588 Ok(deserialize_with) => deserialize_with.0,
6589 Err(err) => {
6590 return Err(err);
6591 }
6592 }
6593 });
6594 }
6595 Field::Keywords => {
6596 if r#keywords_property.is_some() {
6597 return Err(<A::Error as de::Error>::duplicate_field(
6598 "keywords",
6599 ));
6600 }
6601 r#keywords_property = Some({
6602 struct DeserializeWith(Vec<KeywordsProperty>);
6603 impl<'de> Deserialize<'de> for DeserializeWith {
6604 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6605 where
6606 D: Deserializer<'de>,
6607 {
6608 Ok(DeserializeWith(serde_with::As::<
6609 serde_with::OneOrMany<serde_with::Same>,
6610 >::deserialize(deserializer)?))
6611 }
6612 }
6613 match map.next_value::<DeserializeWith>() {
6614 Ok(deserialize_with) => deserialize_with.0,
6615 Err(err) => {
6616 return Err(err);
6617 }
6618 }
6619 });
6620 }
6621 Field::LearningResourceType => {
6622 if r#learning_resource_type_property.is_some() {
6623 return Err(<A::Error as de::Error>::duplicate_field(
6624 "learningResourceType",
6625 ));
6626 }
6627 r#learning_resource_type_property = Some({
6628 struct DeserializeWith(Vec<LearningResourceTypeProperty>);
6629 impl<'de> Deserialize<'de> for DeserializeWith {
6630 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6631 where
6632 D: Deserializer<'de>,
6633 {
6634 Ok(DeserializeWith(serde_with::As::<
6635 serde_with::OneOrMany<serde_with::Same>,
6636 >::deserialize(deserializer)?))
6637 }
6638 }
6639 match map.next_value::<DeserializeWith>() {
6640 Ok(deserialize_with) => deserialize_with.0,
6641 Err(err) => {
6642 return Err(err);
6643 }
6644 }
6645 });
6646 }
6647 Field::License => {
6648 if r#license_property.is_some() {
6649 return Err(<A::Error as de::Error>::duplicate_field(
6650 "license",
6651 ));
6652 }
6653 r#license_property = Some({
6654 struct DeserializeWith(Vec<LicenseProperty>);
6655 impl<'de> Deserialize<'de> for DeserializeWith {
6656 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6657 where
6658 D: Deserializer<'de>,
6659 {
6660 Ok(DeserializeWith(serde_with::As::<
6661 serde_with::OneOrMany<serde_with::Same>,
6662 >::deserialize(deserializer)?))
6663 }
6664 }
6665 match map.next_value::<DeserializeWith>() {
6666 Ok(deserialize_with) => deserialize_with.0,
6667 Err(err) => {
6668 return Err(err);
6669 }
6670 }
6671 });
6672 }
6673 Field::LocationCreated => {
6674 if r#location_created_property.is_some() {
6675 return Err(<A::Error as de::Error>::duplicate_field(
6676 "locationCreated",
6677 ));
6678 }
6679 r#location_created_property = Some({
6680 struct DeserializeWith(Vec<LocationCreatedProperty>);
6681 impl<'de> Deserialize<'de> for DeserializeWith {
6682 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6683 where
6684 D: Deserializer<'de>,
6685 {
6686 Ok(DeserializeWith(serde_with::As::<
6687 serde_with::OneOrMany<serde_with::Same>,
6688 >::deserialize(deserializer)?))
6689 }
6690 }
6691 match map.next_value::<DeserializeWith>() {
6692 Ok(deserialize_with) => deserialize_with.0,
6693 Err(err) => {
6694 return Err(err);
6695 }
6696 }
6697 });
6698 }
6699 Field::MainEntity => {
6700 if r#main_entity_property.is_some() {
6701 return Err(<A::Error as de::Error>::duplicate_field(
6702 "mainEntity",
6703 ));
6704 }
6705 r#main_entity_property = Some({
6706 struct DeserializeWith(Vec<MainEntityProperty>);
6707 impl<'de> Deserialize<'de> for DeserializeWith {
6708 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6709 where
6710 D: Deserializer<'de>,
6711 {
6712 Ok(DeserializeWith(serde_with::As::<
6713 serde_with::OneOrMany<serde_with::Same>,
6714 >::deserialize(deserializer)?))
6715 }
6716 }
6717 match map.next_value::<DeserializeWith>() {
6718 Ok(deserialize_with) => deserialize_with.0,
6719 Err(err) => {
6720 return Err(err);
6721 }
6722 }
6723 });
6724 }
6725 Field::Maintainer => {
6726 if r#maintainer_property.is_some() {
6727 return Err(<A::Error as de::Error>::duplicate_field(
6728 "maintainer",
6729 ));
6730 }
6731 r#maintainer_property = Some({
6732 struct DeserializeWith(Vec<MaintainerProperty>);
6733 impl<'de> Deserialize<'de> for DeserializeWith {
6734 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6735 where
6736 D: Deserializer<'de>,
6737 {
6738 Ok(DeserializeWith(serde_with::As::<
6739 serde_with::OneOrMany<serde_with::Same>,
6740 >::deserialize(deserializer)?))
6741 }
6742 }
6743 match map.next_value::<DeserializeWith>() {
6744 Ok(deserialize_with) => deserialize_with.0,
6745 Err(err) => {
6746 return Err(err);
6747 }
6748 }
6749 });
6750 }
6751 Field::Material => {
6752 if r#material_property.is_some() {
6753 return Err(<A::Error as de::Error>::duplicate_field(
6754 "material",
6755 ));
6756 }
6757 r#material_property = Some({
6758 struct DeserializeWith(Vec<MaterialProperty>);
6759 impl<'de> Deserialize<'de> for DeserializeWith {
6760 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6761 where
6762 D: Deserializer<'de>,
6763 {
6764 Ok(DeserializeWith(serde_with::As::<
6765 serde_with::OneOrMany<serde_with::Same>,
6766 >::deserialize(deserializer)?))
6767 }
6768 }
6769 match map.next_value::<DeserializeWith>() {
6770 Ok(deserialize_with) => deserialize_with.0,
6771 Err(err) => {
6772 return Err(err);
6773 }
6774 }
6775 });
6776 }
6777 Field::MaterialExtent => {
6778 if r#material_extent_property.is_some() {
6779 return Err(<A::Error as de::Error>::duplicate_field(
6780 "materialExtent",
6781 ));
6782 }
6783 r#material_extent_property = Some({
6784 struct DeserializeWith(Vec<MaterialExtentProperty>);
6785 impl<'de> Deserialize<'de> for DeserializeWith {
6786 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6787 where
6788 D: Deserializer<'de>,
6789 {
6790 Ok(DeserializeWith(serde_with::As::<
6791 serde_with::OneOrMany<serde_with::Same>,
6792 >::deserialize(deserializer)?))
6793 }
6794 }
6795 match map.next_value::<DeserializeWith>() {
6796 Ok(deserialize_with) => deserialize_with.0,
6797 Err(err) => {
6798 return Err(err);
6799 }
6800 }
6801 });
6802 }
6803 Field::Mentions => {
6804 if r#mentions_property.is_some() {
6805 return Err(<A::Error as de::Error>::duplicate_field(
6806 "mentions",
6807 ));
6808 }
6809 r#mentions_property = Some({
6810 struct DeserializeWith(Vec<MentionsProperty>);
6811 impl<'de> Deserialize<'de> for DeserializeWith {
6812 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6813 where
6814 D: Deserializer<'de>,
6815 {
6816 Ok(DeserializeWith(serde_with::As::<
6817 serde_with::OneOrMany<serde_with::Same>,
6818 >::deserialize(deserializer)?))
6819 }
6820 }
6821 match map.next_value::<DeserializeWith>() {
6822 Ok(deserialize_with) => deserialize_with.0,
6823 Err(err) => {
6824 return Err(err);
6825 }
6826 }
6827 });
6828 }
6829 Field::Offers => {
6830 if r#offers_property.is_some() {
6831 return Err(<A::Error as de::Error>::duplicate_field("offers"));
6832 }
6833 r#offers_property = Some({
6834 struct DeserializeWith(Vec<OffersProperty>);
6835 impl<'de> Deserialize<'de> for DeserializeWith {
6836 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6837 where
6838 D: Deserializer<'de>,
6839 {
6840 Ok(DeserializeWith(serde_with::As::<
6841 serde_with::OneOrMany<serde_with::Same>,
6842 >::deserialize(deserializer)?))
6843 }
6844 }
6845 match map.next_value::<DeserializeWith>() {
6846 Ok(deserialize_with) => deserialize_with.0,
6847 Err(err) => {
6848 return Err(err);
6849 }
6850 }
6851 });
6852 }
6853 Field::Pattern => {
6854 if r#pattern_property.is_some() {
6855 return Err(<A::Error as de::Error>::duplicate_field(
6856 "pattern",
6857 ));
6858 }
6859 r#pattern_property = Some({
6860 struct DeserializeWith(Vec<PatternProperty>);
6861 impl<'de> Deserialize<'de> for DeserializeWith {
6862 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6863 where
6864 D: Deserializer<'de>,
6865 {
6866 Ok(DeserializeWith(serde_with::As::<
6867 serde_with::OneOrMany<serde_with::Same>,
6868 >::deserialize(deserializer)?))
6869 }
6870 }
6871 match map.next_value::<DeserializeWith>() {
6872 Ok(deserialize_with) => deserialize_with.0,
6873 Err(err) => {
6874 return Err(err);
6875 }
6876 }
6877 });
6878 }
6879 Field::Position => {
6880 if r#position_property.is_some() {
6881 return Err(<A::Error as de::Error>::duplicate_field(
6882 "position",
6883 ));
6884 }
6885 r#position_property = Some({
6886 struct DeserializeWith(Vec<PositionProperty>);
6887 impl<'de> Deserialize<'de> for DeserializeWith {
6888 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6889 where
6890 D: Deserializer<'de>,
6891 {
6892 Ok(DeserializeWith(serde_with::As::<
6893 serde_with::OneOrMany<serde_with::Same>,
6894 >::deserialize(deserializer)?))
6895 }
6896 }
6897 match map.next_value::<DeserializeWith>() {
6898 Ok(deserialize_with) => deserialize_with.0,
6899 Err(err) => {
6900 return Err(err);
6901 }
6902 }
6903 });
6904 }
6905 Field::Producer => {
6906 if r#producer_property.is_some() {
6907 return Err(<A::Error as de::Error>::duplicate_field(
6908 "producer",
6909 ));
6910 }
6911 r#producer_property = Some({
6912 struct DeserializeWith(Vec<ProducerProperty>);
6913 impl<'de> Deserialize<'de> for DeserializeWith {
6914 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6915 where
6916 D: Deserializer<'de>,
6917 {
6918 Ok(DeserializeWith(serde_with::As::<
6919 serde_with::OneOrMany<serde_with::Same>,
6920 >::deserialize(deserializer)?))
6921 }
6922 }
6923 match map.next_value::<DeserializeWith>() {
6924 Ok(deserialize_with) => deserialize_with.0,
6925 Err(err) => {
6926 return Err(err);
6927 }
6928 }
6929 });
6930 }
6931 Field::Provider => {
6932 if r#provider_property.is_some() {
6933 return Err(<A::Error as de::Error>::duplicate_field(
6934 "provider",
6935 ));
6936 }
6937 r#provider_property = Some({
6938 struct DeserializeWith(Vec<ProviderProperty>);
6939 impl<'de> Deserialize<'de> for DeserializeWith {
6940 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6941 where
6942 D: Deserializer<'de>,
6943 {
6944 Ok(DeserializeWith(serde_with::As::<
6945 serde_with::OneOrMany<serde_with::Same>,
6946 >::deserialize(deserializer)?))
6947 }
6948 }
6949 match map.next_value::<DeserializeWith>() {
6950 Ok(deserialize_with) => deserialize_with.0,
6951 Err(err) => {
6952 return Err(err);
6953 }
6954 }
6955 });
6956 }
6957 Field::Publication => {
6958 if r#publication_property.is_some() {
6959 return Err(<A::Error as de::Error>::duplicate_field(
6960 "publication",
6961 ));
6962 }
6963 r#publication_property = Some({
6964 struct DeserializeWith(Vec<PublicationProperty>);
6965 impl<'de> Deserialize<'de> for DeserializeWith {
6966 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6967 where
6968 D: Deserializer<'de>,
6969 {
6970 Ok(DeserializeWith(serde_with::As::<
6971 serde_with::OneOrMany<serde_with::Same>,
6972 >::deserialize(deserializer)?))
6973 }
6974 }
6975 match map.next_value::<DeserializeWith>() {
6976 Ok(deserialize_with) => deserialize_with.0,
6977 Err(err) => {
6978 return Err(err);
6979 }
6980 }
6981 });
6982 }
6983 Field::Publisher => {
6984 if r#publisher_property.is_some() {
6985 return Err(<A::Error as de::Error>::duplicate_field(
6986 "publisher",
6987 ));
6988 }
6989 r#publisher_property = Some({
6990 struct DeserializeWith(Vec<PublisherProperty>);
6991 impl<'de> Deserialize<'de> for DeserializeWith {
6992 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
6993 where
6994 D: Deserializer<'de>,
6995 {
6996 Ok(DeserializeWith(serde_with::As::<
6997 serde_with::OneOrMany<serde_with::Same>,
6998 >::deserialize(deserializer)?))
6999 }
7000 }
7001 match map.next_value::<DeserializeWith>() {
7002 Ok(deserialize_with) => deserialize_with.0,
7003 Err(err) => {
7004 return Err(err);
7005 }
7006 }
7007 });
7008 }
7009 Field::PublisherImprint => {
7010 if r#publisher_imprint_property.is_some() {
7011 return Err(<A::Error as de::Error>::duplicate_field(
7012 "publisherImprint",
7013 ));
7014 }
7015 r#publisher_imprint_property = Some({
7016 struct DeserializeWith(Vec<PublisherImprintProperty>);
7017 impl<'de> Deserialize<'de> for DeserializeWith {
7018 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7019 where
7020 D: Deserializer<'de>,
7021 {
7022 Ok(DeserializeWith(serde_with::As::<
7023 serde_with::OneOrMany<serde_with::Same>,
7024 >::deserialize(deserializer)?))
7025 }
7026 }
7027 match map.next_value::<DeserializeWith>() {
7028 Ok(deserialize_with) => deserialize_with.0,
7029 Err(err) => {
7030 return Err(err);
7031 }
7032 }
7033 });
7034 }
7035 Field::PublishingPrinciples => {
7036 if r#publishing_principles_property.is_some() {
7037 return Err(<A::Error as de::Error>::duplicate_field(
7038 "publishingPrinciples",
7039 ));
7040 }
7041 r#publishing_principles_property = Some({
7042 struct DeserializeWith(Vec<PublishingPrinciplesProperty>);
7043 impl<'de> Deserialize<'de> for DeserializeWith {
7044 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7045 where
7046 D: Deserializer<'de>,
7047 {
7048 Ok(DeserializeWith(serde_with::As::<
7049 serde_with::OneOrMany<serde_with::Same>,
7050 >::deserialize(deserializer)?))
7051 }
7052 }
7053 match map.next_value::<DeserializeWith>() {
7054 Ok(deserialize_with) => deserialize_with.0,
7055 Err(err) => {
7056 return Err(err);
7057 }
7058 }
7059 });
7060 }
7061 Field::RecordedAt => {
7062 if r#recorded_at_property.is_some() {
7063 return Err(<A::Error as de::Error>::duplicate_field(
7064 "recordedAt",
7065 ));
7066 }
7067 r#recorded_at_property = Some({
7068 struct DeserializeWith(Vec<RecordedAtProperty>);
7069 impl<'de> Deserialize<'de> for DeserializeWith {
7070 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7071 where
7072 D: Deserializer<'de>,
7073 {
7074 Ok(DeserializeWith(serde_with::As::<
7075 serde_with::OneOrMany<serde_with::Same>,
7076 >::deserialize(deserializer)?))
7077 }
7078 }
7079 match map.next_value::<DeserializeWith>() {
7080 Ok(deserialize_with) => deserialize_with.0,
7081 Err(err) => {
7082 return Err(err);
7083 }
7084 }
7085 });
7086 }
7087 Field::ReleasedEvent => {
7088 if r#released_event_property.is_some() {
7089 return Err(<A::Error as de::Error>::duplicate_field(
7090 "releasedEvent",
7091 ));
7092 }
7093 r#released_event_property = Some({
7094 struct DeserializeWith(Vec<ReleasedEventProperty>);
7095 impl<'de> Deserialize<'de> for DeserializeWith {
7096 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7097 where
7098 D: Deserializer<'de>,
7099 {
7100 Ok(DeserializeWith(serde_with::As::<
7101 serde_with::OneOrMany<serde_with::Same>,
7102 >::deserialize(deserializer)?))
7103 }
7104 }
7105 match map.next_value::<DeserializeWith>() {
7106 Ok(deserialize_with) => deserialize_with.0,
7107 Err(err) => {
7108 return Err(err);
7109 }
7110 }
7111 });
7112 }
7113 Field::Review => {
7114 if r#review_property.is_some() {
7115 return Err(<A::Error as de::Error>::duplicate_field("review"));
7116 }
7117 r#review_property = Some({
7118 struct DeserializeWith(Vec<ReviewProperty>);
7119 impl<'de> Deserialize<'de> for DeserializeWith {
7120 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7121 where
7122 D: Deserializer<'de>,
7123 {
7124 Ok(DeserializeWith(serde_with::As::<
7125 serde_with::OneOrMany<serde_with::Same>,
7126 >::deserialize(deserializer)?))
7127 }
7128 }
7129 match map.next_value::<DeserializeWith>() {
7130 Ok(deserialize_with) => deserialize_with.0,
7131 Err(err) => {
7132 return Err(err);
7133 }
7134 }
7135 });
7136 }
7137 Field::Reviews => {
7138 if r#reviews_property.is_some() {
7139 return Err(<A::Error as de::Error>::duplicate_field(
7140 "reviews",
7141 ));
7142 }
7143 r#reviews_property = Some({
7144 struct DeserializeWith(Vec<ReviewsProperty>);
7145 impl<'de> Deserialize<'de> for DeserializeWith {
7146 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7147 where
7148 D: Deserializer<'de>,
7149 {
7150 Ok(DeserializeWith(serde_with::As::<
7151 serde_with::OneOrMany<serde_with::Same>,
7152 >::deserialize(deserializer)?))
7153 }
7154 }
7155 match map.next_value::<DeserializeWith>() {
7156 Ok(deserialize_with) => deserialize_with.0,
7157 Err(err) => {
7158 return Err(err);
7159 }
7160 }
7161 });
7162 }
7163 Field::SchemaVersion => {
7164 if r#schema_version_property.is_some() {
7165 return Err(<A::Error as de::Error>::duplicate_field(
7166 "schemaVersion",
7167 ));
7168 }
7169 r#schema_version_property = Some({
7170 struct DeserializeWith(Vec<SchemaVersionProperty>);
7171 impl<'de> Deserialize<'de> for DeserializeWith {
7172 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7173 where
7174 D: Deserializer<'de>,
7175 {
7176 Ok(DeserializeWith(serde_with::As::<
7177 serde_with::OneOrMany<serde_with::Same>,
7178 >::deserialize(deserializer)?))
7179 }
7180 }
7181 match map.next_value::<DeserializeWith>() {
7182 Ok(deserialize_with) => deserialize_with.0,
7183 Err(err) => {
7184 return Err(err);
7185 }
7186 }
7187 });
7188 }
7189 Field::SdDatePublished => {
7190 if r#sd_date_published_property.is_some() {
7191 return Err(<A::Error as de::Error>::duplicate_field(
7192 "sdDatePublished",
7193 ));
7194 }
7195 r#sd_date_published_property = Some({
7196 struct DeserializeWith(Vec<SdDatePublishedProperty>);
7197 impl<'de> Deserialize<'de> for DeserializeWith {
7198 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7199 where
7200 D: Deserializer<'de>,
7201 {
7202 Ok(DeserializeWith(serde_with::As::<
7203 serde_with::OneOrMany<serde_with::Same>,
7204 >::deserialize(deserializer)?))
7205 }
7206 }
7207 match map.next_value::<DeserializeWith>() {
7208 Ok(deserialize_with) => deserialize_with.0,
7209 Err(err) => {
7210 return Err(err);
7211 }
7212 }
7213 });
7214 }
7215 Field::SdLicense => {
7216 if r#sd_license_property.is_some() {
7217 return Err(<A::Error as de::Error>::duplicate_field(
7218 "sdLicense",
7219 ));
7220 }
7221 r#sd_license_property = Some({
7222 struct DeserializeWith(Vec<SdLicenseProperty>);
7223 impl<'de> Deserialize<'de> for DeserializeWith {
7224 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7225 where
7226 D: Deserializer<'de>,
7227 {
7228 Ok(DeserializeWith(serde_with::As::<
7229 serde_with::OneOrMany<serde_with::Same>,
7230 >::deserialize(deserializer)?))
7231 }
7232 }
7233 match map.next_value::<DeserializeWith>() {
7234 Ok(deserialize_with) => deserialize_with.0,
7235 Err(err) => {
7236 return Err(err);
7237 }
7238 }
7239 });
7240 }
7241 Field::SdPublisher => {
7242 if r#sd_publisher_property.is_some() {
7243 return Err(<A::Error as de::Error>::duplicate_field(
7244 "sdPublisher",
7245 ));
7246 }
7247 r#sd_publisher_property = Some({
7248 struct DeserializeWith(Vec<SdPublisherProperty>);
7249 impl<'de> Deserialize<'de> for DeserializeWith {
7250 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7251 where
7252 D: Deserializer<'de>,
7253 {
7254 Ok(DeserializeWith(serde_with::As::<
7255 serde_with::OneOrMany<serde_with::Same>,
7256 >::deserialize(deserializer)?))
7257 }
7258 }
7259 match map.next_value::<DeserializeWith>() {
7260 Ok(deserialize_with) => deserialize_with.0,
7261 Err(err) => {
7262 return Err(err);
7263 }
7264 }
7265 });
7266 }
7267 Field::Size => {
7268 if r#size_property.is_some() {
7269 return Err(<A::Error as de::Error>::duplicate_field("size"));
7270 }
7271 r#size_property = Some({
7272 struct DeserializeWith(Vec<SizeProperty>);
7273 impl<'de> Deserialize<'de> for DeserializeWith {
7274 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7275 where
7276 D: Deserializer<'de>,
7277 {
7278 Ok(DeserializeWith(serde_with::As::<
7279 serde_with::OneOrMany<serde_with::Same>,
7280 >::deserialize(deserializer)?))
7281 }
7282 }
7283 match map.next_value::<DeserializeWith>() {
7284 Ok(deserialize_with) => deserialize_with.0,
7285 Err(err) => {
7286 return Err(err);
7287 }
7288 }
7289 });
7290 }
7291 Field::SourceOrganization => {
7292 if r#source_organization_property.is_some() {
7293 return Err(<A::Error as de::Error>::duplicate_field(
7294 "sourceOrganization",
7295 ));
7296 }
7297 r#source_organization_property = Some({
7298 struct DeserializeWith(Vec<SourceOrganizationProperty>);
7299 impl<'de> Deserialize<'de> for DeserializeWith {
7300 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7301 where
7302 D: Deserializer<'de>,
7303 {
7304 Ok(DeserializeWith(serde_with::As::<
7305 serde_with::OneOrMany<serde_with::Same>,
7306 >::deserialize(deserializer)?))
7307 }
7308 }
7309 match map.next_value::<DeserializeWith>() {
7310 Ok(deserialize_with) => deserialize_with.0,
7311 Err(err) => {
7312 return Err(err);
7313 }
7314 }
7315 });
7316 }
7317 Field::Spatial => {
7318 if r#spatial_property.is_some() {
7319 return Err(<A::Error as de::Error>::duplicate_field(
7320 "spatial",
7321 ));
7322 }
7323 r#spatial_property = Some({
7324 struct DeserializeWith(Vec<SpatialProperty>);
7325 impl<'de> Deserialize<'de> for DeserializeWith {
7326 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7327 where
7328 D: Deserializer<'de>,
7329 {
7330 Ok(DeserializeWith(serde_with::As::<
7331 serde_with::OneOrMany<serde_with::Same>,
7332 >::deserialize(deserializer)?))
7333 }
7334 }
7335 match map.next_value::<DeserializeWith>() {
7336 Ok(deserialize_with) => deserialize_with.0,
7337 Err(err) => {
7338 return Err(err);
7339 }
7340 }
7341 });
7342 }
7343 Field::SpatialCoverage => {
7344 if r#spatial_coverage_property.is_some() {
7345 return Err(<A::Error as de::Error>::duplicate_field(
7346 "spatialCoverage",
7347 ));
7348 }
7349 r#spatial_coverage_property = Some({
7350 struct DeserializeWith(Vec<SpatialCoverageProperty>);
7351 impl<'de> Deserialize<'de> for DeserializeWith {
7352 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7353 where
7354 D: Deserializer<'de>,
7355 {
7356 Ok(DeserializeWith(serde_with::As::<
7357 serde_with::OneOrMany<serde_with::Same>,
7358 >::deserialize(deserializer)?))
7359 }
7360 }
7361 match map.next_value::<DeserializeWith>() {
7362 Ok(deserialize_with) => deserialize_with.0,
7363 Err(err) => {
7364 return Err(err);
7365 }
7366 }
7367 });
7368 }
7369 Field::Sponsor => {
7370 if r#sponsor_property.is_some() {
7371 return Err(<A::Error as de::Error>::duplicate_field(
7372 "sponsor",
7373 ));
7374 }
7375 r#sponsor_property = Some({
7376 struct DeserializeWith(Vec<SponsorProperty>);
7377 impl<'de> Deserialize<'de> for DeserializeWith {
7378 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7379 where
7380 D: Deserializer<'de>,
7381 {
7382 Ok(DeserializeWith(serde_with::As::<
7383 serde_with::OneOrMany<serde_with::Same>,
7384 >::deserialize(deserializer)?))
7385 }
7386 }
7387 match map.next_value::<DeserializeWith>() {
7388 Ok(deserialize_with) => deserialize_with.0,
7389 Err(err) => {
7390 return Err(err);
7391 }
7392 }
7393 });
7394 }
7395 Field::Teaches => {
7396 if r#teaches_property.is_some() {
7397 return Err(<A::Error as de::Error>::duplicate_field(
7398 "teaches",
7399 ));
7400 }
7401 r#teaches_property = Some({
7402 struct DeserializeWith(Vec<TeachesProperty>);
7403 impl<'de> Deserialize<'de> for DeserializeWith {
7404 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7405 where
7406 D: Deserializer<'de>,
7407 {
7408 Ok(DeserializeWith(serde_with::As::<
7409 serde_with::OneOrMany<serde_with::Same>,
7410 >::deserialize(deserializer)?))
7411 }
7412 }
7413 match map.next_value::<DeserializeWith>() {
7414 Ok(deserialize_with) => deserialize_with.0,
7415 Err(err) => {
7416 return Err(err);
7417 }
7418 }
7419 });
7420 }
7421 Field::Temporal => {
7422 if r#temporal_property.is_some() {
7423 return Err(<A::Error as de::Error>::duplicate_field(
7424 "temporal",
7425 ));
7426 }
7427 r#temporal_property = Some({
7428 struct DeserializeWith(Vec<TemporalProperty>);
7429 impl<'de> Deserialize<'de> for DeserializeWith {
7430 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7431 where
7432 D: Deserializer<'de>,
7433 {
7434 Ok(DeserializeWith(serde_with::As::<
7435 serde_with::OneOrMany<serde_with::Same>,
7436 >::deserialize(deserializer)?))
7437 }
7438 }
7439 match map.next_value::<DeserializeWith>() {
7440 Ok(deserialize_with) => deserialize_with.0,
7441 Err(err) => {
7442 return Err(err);
7443 }
7444 }
7445 });
7446 }
7447 Field::TemporalCoverage => {
7448 if r#temporal_coverage_property.is_some() {
7449 return Err(<A::Error as de::Error>::duplicate_field(
7450 "temporalCoverage",
7451 ));
7452 }
7453 r#temporal_coverage_property = Some({
7454 struct DeserializeWith(Vec<TemporalCoverageProperty>);
7455 impl<'de> Deserialize<'de> for DeserializeWith {
7456 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7457 where
7458 D: Deserializer<'de>,
7459 {
7460 Ok(DeserializeWith(serde_with::As::<
7461 serde_with::OneOrMany<serde_with::Same>,
7462 >::deserialize(deserializer)?))
7463 }
7464 }
7465 match map.next_value::<DeserializeWith>() {
7466 Ok(deserialize_with) => deserialize_with.0,
7467 Err(err) => {
7468 return Err(err);
7469 }
7470 }
7471 });
7472 }
7473 Field::Text => {
7474 if r#text_property.is_some() {
7475 return Err(<A::Error as de::Error>::duplicate_field("text"));
7476 }
7477 r#text_property = Some({
7478 struct DeserializeWith(Vec<TextProperty>);
7479 impl<'de> Deserialize<'de> for DeserializeWith {
7480 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7481 where
7482 D: Deserializer<'de>,
7483 {
7484 Ok(DeserializeWith(serde_with::As::<
7485 serde_with::OneOrMany<serde_with::Same>,
7486 >::deserialize(deserializer)?))
7487 }
7488 }
7489 match map.next_value::<DeserializeWith>() {
7490 Ok(deserialize_with) => deserialize_with.0,
7491 Err(err) => {
7492 return Err(err);
7493 }
7494 }
7495 });
7496 }
7497 Field::Thumbnail => {
7498 if r#thumbnail_property.is_some() {
7499 return Err(<A::Error as de::Error>::duplicate_field(
7500 "thumbnail",
7501 ));
7502 }
7503 r#thumbnail_property = Some({
7504 struct DeserializeWith(Vec<ThumbnailProperty>);
7505 impl<'de> Deserialize<'de> for DeserializeWith {
7506 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7507 where
7508 D: Deserializer<'de>,
7509 {
7510 Ok(DeserializeWith(serde_with::As::<
7511 serde_with::OneOrMany<serde_with::Same>,
7512 >::deserialize(deserializer)?))
7513 }
7514 }
7515 match map.next_value::<DeserializeWith>() {
7516 Ok(deserialize_with) => deserialize_with.0,
7517 Err(err) => {
7518 return Err(err);
7519 }
7520 }
7521 });
7522 }
7523 Field::ThumbnailUrl => {
7524 if r#thumbnail_url_property.is_some() {
7525 return Err(<A::Error as de::Error>::duplicate_field(
7526 "thumbnailUrl",
7527 ));
7528 }
7529 r#thumbnail_url_property = Some({
7530 struct DeserializeWith(Vec<ThumbnailUrlProperty>);
7531 impl<'de> Deserialize<'de> for DeserializeWith {
7532 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7533 where
7534 D: Deserializer<'de>,
7535 {
7536 Ok(DeserializeWith(serde_with::As::<
7537 serde_with::OneOrMany<serde_with::Same>,
7538 >::deserialize(deserializer)?))
7539 }
7540 }
7541 match map.next_value::<DeserializeWith>() {
7542 Ok(deserialize_with) => deserialize_with.0,
7543 Err(err) => {
7544 return Err(err);
7545 }
7546 }
7547 });
7548 }
7549 Field::TimeRequired => {
7550 if r#time_required_property.is_some() {
7551 return Err(<A::Error as de::Error>::duplicate_field(
7552 "timeRequired",
7553 ));
7554 }
7555 r#time_required_property = Some({
7556 struct DeserializeWith(Vec<TimeRequiredProperty>);
7557 impl<'de> Deserialize<'de> for DeserializeWith {
7558 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7559 where
7560 D: Deserializer<'de>,
7561 {
7562 Ok(DeserializeWith(serde_with::As::<
7563 serde_with::OneOrMany<serde_with::Same>,
7564 >::deserialize(deserializer)?))
7565 }
7566 }
7567 match map.next_value::<DeserializeWith>() {
7568 Ok(deserialize_with) => deserialize_with.0,
7569 Err(err) => {
7570 return Err(err);
7571 }
7572 }
7573 });
7574 }
7575 Field::TranslationOfWork => {
7576 if r#translation_of_work_property.is_some() {
7577 return Err(<A::Error as de::Error>::duplicate_field(
7578 "translationOfWork",
7579 ));
7580 }
7581 r#translation_of_work_property = Some({
7582 struct DeserializeWith(Vec<TranslationOfWorkProperty>);
7583 impl<'de> Deserialize<'de> for DeserializeWith {
7584 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7585 where
7586 D: Deserializer<'de>,
7587 {
7588 Ok(DeserializeWith(serde_with::As::<
7589 serde_with::OneOrMany<serde_with::Same>,
7590 >::deserialize(deserializer)?))
7591 }
7592 }
7593 match map.next_value::<DeserializeWith>() {
7594 Ok(deserialize_with) => deserialize_with.0,
7595 Err(err) => {
7596 return Err(err);
7597 }
7598 }
7599 });
7600 }
7601 Field::Translator => {
7602 if r#translator_property.is_some() {
7603 return Err(<A::Error as de::Error>::duplicate_field(
7604 "translator",
7605 ));
7606 }
7607 r#translator_property = Some({
7608 struct DeserializeWith(Vec<TranslatorProperty>);
7609 impl<'de> Deserialize<'de> for DeserializeWith {
7610 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7611 where
7612 D: Deserializer<'de>,
7613 {
7614 Ok(DeserializeWith(serde_with::As::<
7615 serde_with::OneOrMany<serde_with::Same>,
7616 >::deserialize(deserializer)?))
7617 }
7618 }
7619 match map.next_value::<DeserializeWith>() {
7620 Ok(deserialize_with) => deserialize_with.0,
7621 Err(err) => {
7622 return Err(err);
7623 }
7624 }
7625 });
7626 }
7627 Field::TypicalAgeRange => {
7628 if r#typical_age_range_property.is_some() {
7629 return Err(<A::Error as de::Error>::duplicate_field(
7630 "typicalAgeRange",
7631 ));
7632 }
7633 r#typical_age_range_property = Some({
7634 struct DeserializeWith(Vec<TypicalAgeRangeProperty>);
7635 impl<'de> Deserialize<'de> for DeserializeWith {
7636 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7637 where
7638 D: Deserializer<'de>,
7639 {
7640 Ok(DeserializeWith(serde_with::As::<
7641 serde_with::OneOrMany<serde_with::Same>,
7642 >::deserialize(deserializer)?))
7643 }
7644 }
7645 match map.next_value::<DeserializeWith>() {
7646 Ok(deserialize_with) => deserialize_with.0,
7647 Err(err) => {
7648 return Err(err);
7649 }
7650 }
7651 });
7652 }
7653 Field::UsageInfo => {
7654 if r#usage_info_property.is_some() {
7655 return Err(<A::Error as de::Error>::duplicate_field(
7656 "usageInfo",
7657 ));
7658 }
7659 r#usage_info_property = Some({
7660 struct DeserializeWith(Vec<UsageInfoProperty>);
7661 impl<'de> Deserialize<'de> for DeserializeWith {
7662 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7663 where
7664 D: Deserializer<'de>,
7665 {
7666 Ok(DeserializeWith(serde_with::As::<
7667 serde_with::OneOrMany<serde_with::Same>,
7668 >::deserialize(deserializer)?))
7669 }
7670 }
7671 match map.next_value::<DeserializeWith>() {
7672 Ok(deserialize_with) => deserialize_with.0,
7673 Err(err) => {
7674 return Err(err);
7675 }
7676 }
7677 });
7678 }
7679 Field::Version => {
7680 if r#version_property.is_some() {
7681 return Err(<A::Error as de::Error>::duplicate_field(
7682 "version",
7683 ));
7684 }
7685 r#version_property = Some({
7686 struct DeserializeWith(Vec<VersionProperty>);
7687 impl<'de> Deserialize<'de> for DeserializeWith {
7688 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7689 where
7690 D: Deserializer<'de>,
7691 {
7692 Ok(DeserializeWith(serde_with::As::<
7693 serde_with::OneOrMany<serde_with::Same>,
7694 >::deserialize(deserializer)?))
7695 }
7696 }
7697 match map.next_value::<DeserializeWith>() {
7698 Ok(deserialize_with) => deserialize_with.0,
7699 Err(err) => {
7700 return Err(err);
7701 }
7702 }
7703 });
7704 }
7705 Field::Video => {
7706 if r#video_property.is_some() {
7707 return Err(<A::Error as de::Error>::duplicate_field("video"));
7708 }
7709 r#video_property = Some({
7710 struct DeserializeWith(Vec<VideoProperty>);
7711 impl<'de> Deserialize<'de> for DeserializeWith {
7712 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7713 where
7714 D: Deserializer<'de>,
7715 {
7716 Ok(DeserializeWith(serde_with::As::<
7717 serde_with::OneOrMany<serde_with::Same>,
7718 >::deserialize(deserializer)?))
7719 }
7720 }
7721 match map.next_value::<DeserializeWith>() {
7722 Ok(deserialize_with) => deserialize_with.0,
7723 Err(err) => {
7724 return Err(err);
7725 }
7726 }
7727 });
7728 }
7729 Field::WorkExample => {
7730 if r#work_example_property.is_some() {
7731 return Err(<A::Error as de::Error>::duplicate_field(
7732 "workExample",
7733 ));
7734 }
7735 r#work_example_property = Some({
7736 struct DeserializeWith(Vec<WorkExampleProperty>);
7737 impl<'de> Deserialize<'de> for DeserializeWith {
7738 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7739 where
7740 D: Deserializer<'de>,
7741 {
7742 Ok(DeserializeWith(serde_with::As::<
7743 serde_with::OneOrMany<serde_with::Same>,
7744 >::deserialize(deserializer)?))
7745 }
7746 }
7747 match map.next_value::<DeserializeWith>() {
7748 Ok(deserialize_with) => deserialize_with.0,
7749 Err(err) => {
7750 return Err(err);
7751 }
7752 }
7753 });
7754 }
7755 Field::WorkTranslation => {
7756 if r#work_translation_property.is_some() {
7757 return Err(<A::Error as de::Error>::duplicate_field(
7758 "workTranslation",
7759 ));
7760 }
7761 r#work_translation_property = Some({
7762 struct DeserializeWith(Vec<WorkTranslationProperty>);
7763 impl<'de> Deserialize<'de> for DeserializeWith {
7764 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7765 where
7766 D: Deserializer<'de>,
7767 {
7768 Ok(DeserializeWith(serde_with::As::<
7769 serde_with::OneOrMany<serde_with::Same>,
7770 >::deserialize(deserializer)?))
7771 }
7772 }
7773 match map.next_value::<DeserializeWith>() {
7774 Ok(deserialize_with) => deserialize_with.0,
7775 Err(err) => {
7776 return Err(err);
7777 }
7778 }
7779 });
7780 }
7781 Field::EstimatedCost => {
7782 if r#estimated_cost_property.is_some() {
7783 return Err(<A::Error as de::Error>::duplicate_field(
7784 "estimatedCost",
7785 ));
7786 }
7787 r#estimated_cost_property = Some({
7788 struct DeserializeWith(Vec<EstimatedCostProperty>);
7789 impl<'de> Deserialize<'de> for DeserializeWith {
7790 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7791 where
7792 D: Deserializer<'de>,
7793 {
7794 Ok(DeserializeWith(serde_with::As::<
7795 serde_with::OneOrMany<serde_with::Same>,
7796 >::deserialize(deserializer)?))
7797 }
7798 }
7799 match map.next_value::<DeserializeWith>() {
7800 Ok(deserialize_with) => deserialize_with.0,
7801 Err(err) => {
7802 return Err(err);
7803 }
7804 }
7805 });
7806 }
7807 Field::PerformTime => {
7808 if r#perform_time_property.is_some() {
7809 return Err(<A::Error as de::Error>::duplicate_field(
7810 "performTime",
7811 ));
7812 }
7813 r#perform_time_property = Some({
7814 struct DeserializeWith(Vec<PerformTimeProperty>);
7815 impl<'de> Deserialize<'de> for DeserializeWith {
7816 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7817 where
7818 D: Deserializer<'de>,
7819 {
7820 Ok(DeserializeWith(serde_with::As::<
7821 serde_with::OneOrMany<serde_with::Same>,
7822 >::deserialize(deserializer)?))
7823 }
7824 }
7825 match map.next_value::<DeserializeWith>() {
7826 Ok(deserialize_with) => deserialize_with.0,
7827 Err(err) => {
7828 return Err(err);
7829 }
7830 }
7831 });
7832 }
7833 Field::PrepTime => {
7834 if r#prep_time_property.is_some() {
7835 return Err(<A::Error as de::Error>::duplicate_field(
7836 "prepTime",
7837 ));
7838 }
7839 r#prep_time_property = Some({
7840 struct DeserializeWith(Vec<PrepTimeProperty>);
7841 impl<'de> Deserialize<'de> for DeserializeWith {
7842 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7843 where
7844 D: Deserializer<'de>,
7845 {
7846 Ok(DeserializeWith(serde_with::As::<
7847 serde_with::OneOrMany<serde_with::Same>,
7848 >::deserialize(deserializer)?))
7849 }
7850 }
7851 match map.next_value::<DeserializeWith>() {
7852 Ok(deserialize_with) => deserialize_with.0,
7853 Err(err) => {
7854 return Err(err);
7855 }
7856 }
7857 });
7858 }
7859 Field::Step => {
7860 if r#step_property.is_some() {
7861 return Err(<A::Error as de::Error>::duplicate_field("step"));
7862 }
7863 r#step_property = Some({
7864 struct DeserializeWith(Vec<StepProperty>);
7865 impl<'de> Deserialize<'de> for DeserializeWith {
7866 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7867 where
7868 D: Deserializer<'de>,
7869 {
7870 Ok(DeserializeWith(serde_with::As::<
7871 serde_with::OneOrMany<serde_with::Same>,
7872 >::deserialize(deserializer)?))
7873 }
7874 }
7875 match map.next_value::<DeserializeWith>() {
7876 Ok(deserialize_with) => deserialize_with.0,
7877 Err(err) => {
7878 return Err(err);
7879 }
7880 }
7881 });
7882 }
7883 Field::Steps => {
7884 if r#steps_property.is_some() {
7885 return Err(<A::Error as de::Error>::duplicate_field("steps"));
7886 }
7887 r#steps_property = Some({
7888 struct DeserializeWith(Vec<StepsProperty>);
7889 impl<'de> Deserialize<'de> for DeserializeWith {
7890 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7891 where
7892 D: Deserializer<'de>,
7893 {
7894 Ok(DeserializeWith(serde_with::As::<
7895 serde_with::OneOrMany<serde_with::Same>,
7896 >::deserialize(deserializer)?))
7897 }
7898 }
7899 match map.next_value::<DeserializeWith>() {
7900 Ok(deserialize_with) => deserialize_with.0,
7901 Err(err) => {
7902 return Err(err);
7903 }
7904 }
7905 });
7906 }
7907 Field::Supply => {
7908 if r#supply_property.is_some() {
7909 return Err(<A::Error as de::Error>::duplicate_field("supply"));
7910 }
7911 r#supply_property = Some({
7912 struct DeserializeWith(Vec<SupplyProperty>);
7913 impl<'de> Deserialize<'de> for DeserializeWith {
7914 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7915 where
7916 D: Deserializer<'de>,
7917 {
7918 Ok(DeserializeWith(serde_with::As::<
7919 serde_with::OneOrMany<serde_with::Same>,
7920 >::deserialize(deserializer)?))
7921 }
7922 }
7923 match map.next_value::<DeserializeWith>() {
7924 Ok(deserialize_with) => deserialize_with.0,
7925 Err(err) => {
7926 return Err(err);
7927 }
7928 }
7929 });
7930 }
7931 Field::Tool => {
7932 if r#tool_property.is_some() {
7933 return Err(<A::Error as de::Error>::duplicate_field("tool"));
7934 }
7935 r#tool_property = Some({
7936 struct DeserializeWith(Vec<ToolProperty>);
7937 impl<'de> Deserialize<'de> for DeserializeWith {
7938 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7939 where
7940 D: Deserializer<'de>,
7941 {
7942 Ok(DeserializeWith(serde_with::As::<
7943 serde_with::OneOrMany<serde_with::Same>,
7944 >::deserialize(deserializer)?))
7945 }
7946 }
7947 match map.next_value::<DeserializeWith>() {
7948 Ok(deserialize_with) => deserialize_with.0,
7949 Err(err) => {
7950 return Err(err);
7951 }
7952 }
7953 });
7954 }
7955 Field::TotalTime => {
7956 if r#total_time_property.is_some() {
7957 return Err(<A::Error as de::Error>::duplicate_field(
7958 "totalTime",
7959 ));
7960 }
7961 r#total_time_property = Some({
7962 struct DeserializeWith(Vec<TotalTimeProperty>);
7963 impl<'de> Deserialize<'de> for DeserializeWith {
7964 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7965 where
7966 D: Deserializer<'de>,
7967 {
7968 Ok(DeserializeWith(serde_with::As::<
7969 serde_with::OneOrMany<serde_with::Same>,
7970 >::deserialize(deserializer)?))
7971 }
7972 }
7973 match map.next_value::<DeserializeWith>() {
7974 Ok(deserialize_with) => deserialize_with.0,
7975 Err(err) => {
7976 return Err(err);
7977 }
7978 }
7979 });
7980 }
7981 Field::Yield => {
7982 if r#yield_property.is_some() {
7983 return Err(<A::Error as de::Error>::duplicate_field("yield"));
7984 }
7985 r#yield_property = Some({
7986 struct DeserializeWith(Vec<YieldProperty>);
7987 impl<'de> Deserialize<'de> for DeserializeWith {
7988 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
7989 where
7990 D: Deserializer<'de>,
7991 {
7992 Ok(DeserializeWith(serde_with::As::<
7993 serde_with::OneOrMany<serde_with::Same>,
7994 >::deserialize(deserializer)?))
7995 }
7996 }
7997 match map.next_value::<DeserializeWith>() {
7998 Ok(deserialize_with) => deserialize_with.0,
7999 Err(err) => {
8000 return Err(err);
8001 }
8002 }
8003 });
8004 }
8005 Field::AdditionalType => {
8006 if r#additional_type_property.is_some() {
8007 return Err(<A::Error as de::Error>::duplicate_field(
8008 "additionalType",
8009 ));
8010 }
8011 r#additional_type_property = Some({
8012 struct DeserializeWith(Vec<AdditionalTypeProperty>);
8013 impl<'de> Deserialize<'de> for DeserializeWith {
8014 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8015 where
8016 D: Deserializer<'de>,
8017 {
8018 Ok(DeserializeWith(serde_with::As::<
8019 serde_with::OneOrMany<serde_with::Same>,
8020 >::deserialize(deserializer)?))
8021 }
8022 }
8023 match map.next_value::<DeserializeWith>() {
8024 Ok(deserialize_with) => deserialize_with.0,
8025 Err(err) => {
8026 return Err(err);
8027 }
8028 }
8029 });
8030 }
8031 Field::AlternateName => {
8032 if r#alternate_name_property.is_some() {
8033 return Err(<A::Error as de::Error>::duplicate_field(
8034 "alternateName",
8035 ));
8036 }
8037 r#alternate_name_property = Some({
8038 struct DeserializeWith(Vec<AlternateNameProperty>);
8039 impl<'de> Deserialize<'de> for DeserializeWith {
8040 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8041 where
8042 D: Deserializer<'de>,
8043 {
8044 Ok(DeserializeWith(serde_with::As::<
8045 serde_with::OneOrMany<serde_with::Same>,
8046 >::deserialize(deserializer)?))
8047 }
8048 }
8049 match map.next_value::<DeserializeWith>() {
8050 Ok(deserialize_with) => deserialize_with.0,
8051 Err(err) => {
8052 return Err(err);
8053 }
8054 }
8055 });
8056 }
8057 Field::Description => {
8058 if r#description_property.is_some() {
8059 return Err(<A::Error as de::Error>::duplicate_field(
8060 "description",
8061 ));
8062 }
8063 r#description_property = Some({
8064 struct DeserializeWith(Vec<DescriptionProperty>);
8065 impl<'de> Deserialize<'de> for DeserializeWith {
8066 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8067 where
8068 D: Deserializer<'de>,
8069 {
8070 Ok(DeserializeWith(serde_with::As::<
8071 serde_with::OneOrMany<serde_with::Same>,
8072 >::deserialize(deserializer)?))
8073 }
8074 }
8075 match map.next_value::<DeserializeWith>() {
8076 Ok(deserialize_with) => deserialize_with.0,
8077 Err(err) => {
8078 return Err(err);
8079 }
8080 }
8081 });
8082 }
8083 Field::DisambiguatingDescription => {
8084 if r#disambiguating_description_property.is_some() {
8085 return Err(<A::Error as de::Error>::duplicate_field(
8086 "disambiguatingDescription",
8087 ));
8088 }
8089 r#disambiguating_description_property = Some({
8090 struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
8091 impl<'de> Deserialize<'de> for DeserializeWith {
8092 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8093 where
8094 D: Deserializer<'de>,
8095 {
8096 Ok(DeserializeWith(serde_with::As::<
8097 serde_with::OneOrMany<serde_with::Same>,
8098 >::deserialize(deserializer)?))
8099 }
8100 }
8101 match map.next_value::<DeserializeWith>() {
8102 Ok(deserialize_with) => deserialize_with.0,
8103 Err(err) => {
8104 return Err(err);
8105 }
8106 }
8107 });
8108 }
8109 Field::Identifier => {
8110 if r#identifier_property.is_some() {
8111 return Err(<A::Error as de::Error>::duplicate_field(
8112 "identifier",
8113 ));
8114 }
8115 r#identifier_property = Some({
8116 struct DeserializeWith(Vec<IdentifierProperty>);
8117 impl<'de> Deserialize<'de> for DeserializeWith {
8118 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8119 where
8120 D: Deserializer<'de>,
8121 {
8122 Ok(DeserializeWith(serde_with::As::<
8123 serde_with::OneOrMany<serde_with::Same>,
8124 >::deserialize(deserializer)?))
8125 }
8126 }
8127 match map.next_value::<DeserializeWith>() {
8128 Ok(deserialize_with) => deserialize_with.0,
8129 Err(err) => {
8130 return Err(err);
8131 }
8132 }
8133 });
8134 }
8135 Field::Image => {
8136 if r#image_property.is_some() {
8137 return Err(<A::Error as de::Error>::duplicate_field("image"));
8138 }
8139 r#image_property = Some({
8140 struct DeserializeWith(Vec<ImageProperty>);
8141 impl<'de> Deserialize<'de> for DeserializeWith {
8142 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8143 where
8144 D: Deserializer<'de>,
8145 {
8146 Ok(DeserializeWith(serde_with::As::<
8147 serde_with::OneOrMany<serde_with::Same>,
8148 >::deserialize(deserializer)?))
8149 }
8150 }
8151 match map.next_value::<DeserializeWith>() {
8152 Ok(deserialize_with) => deserialize_with.0,
8153 Err(err) => {
8154 return Err(err);
8155 }
8156 }
8157 });
8158 }
8159 Field::MainEntityOfPage => {
8160 if r#main_entity_of_page_property.is_some() {
8161 return Err(<A::Error as de::Error>::duplicate_field(
8162 "mainEntityOfPage",
8163 ));
8164 }
8165 r#main_entity_of_page_property = Some({
8166 struct DeserializeWith(Vec<MainEntityOfPageProperty>);
8167 impl<'de> Deserialize<'de> for DeserializeWith {
8168 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8169 where
8170 D: Deserializer<'de>,
8171 {
8172 Ok(DeserializeWith(serde_with::As::<
8173 serde_with::OneOrMany<serde_with::Same>,
8174 >::deserialize(deserializer)?))
8175 }
8176 }
8177 match map.next_value::<DeserializeWith>() {
8178 Ok(deserialize_with) => deserialize_with.0,
8179 Err(err) => {
8180 return Err(err);
8181 }
8182 }
8183 });
8184 }
8185 Field::Name => {
8186 if r#name_property.is_some() {
8187 return Err(<A::Error as de::Error>::duplicate_field("name"));
8188 }
8189 r#name_property = Some({
8190 struct DeserializeWith(Vec<NameProperty>);
8191 impl<'de> Deserialize<'de> for DeserializeWith {
8192 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8193 where
8194 D: Deserializer<'de>,
8195 {
8196 Ok(DeserializeWith(serde_with::As::<
8197 serde_with::OneOrMany<serde_with::Same>,
8198 >::deserialize(deserializer)?))
8199 }
8200 }
8201 match map.next_value::<DeserializeWith>() {
8202 Ok(deserialize_with) => deserialize_with.0,
8203 Err(err) => {
8204 return Err(err);
8205 }
8206 }
8207 });
8208 }
8209 Field::PotentialAction => {
8210 if r#potential_action_property.is_some() {
8211 return Err(<A::Error as de::Error>::duplicate_field(
8212 "potentialAction",
8213 ));
8214 }
8215 r#potential_action_property = Some({
8216 struct DeserializeWith(Vec<PotentialActionProperty>);
8217 impl<'de> Deserialize<'de> for DeserializeWith {
8218 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8219 where
8220 D: Deserializer<'de>,
8221 {
8222 Ok(DeserializeWith(serde_with::As::<
8223 serde_with::OneOrMany<serde_with::Same>,
8224 >::deserialize(deserializer)?))
8225 }
8226 }
8227 match map.next_value::<DeserializeWith>() {
8228 Ok(deserialize_with) => deserialize_with.0,
8229 Err(err) => {
8230 return Err(err);
8231 }
8232 }
8233 });
8234 }
8235 Field::SameAs => {
8236 if r#same_as_property.is_some() {
8237 return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
8238 }
8239 r#same_as_property = Some({
8240 struct DeserializeWith(Vec<SameAsProperty>);
8241 impl<'de> Deserialize<'de> for DeserializeWith {
8242 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8243 where
8244 D: Deserializer<'de>,
8245 {
8246 Ok(DeserializeWith(serde_with::As::<
8247 serde_with::OneOrMany<serde_with::Same>,
8248 >::deserialize(deserializer)?))
8249 }
8250 }
8251 match map.next_value::<DeserializeWith>() {
8252 Ok(deserialize_with) => deserialize_with.0,
8253 Err(err) => {
8254 return Err(err);
8255 }
8256 }
8257 });
8258 }
8259 Field::SubjectOf => {
8260 if r#subject_of_property.is_some() {
8261 return Err(<A::Error as de::Error>::duplicate_field(
8262 "subjectOf",
8263 ));
8264 }
8265 r#subject_of_property = Some({
8266 struct DeserializeWith(Vec<SubjectOfProperty>);
8267 impl<'de> Deserialize<'de> for DeserializeWith {
8268 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8269 where
8270 D: Deserializer<'de>,
8271 {
8272 Ok(DeserializeWith(serde_with::As::<
8273 serde_with::OneOrMany<serde_with::Same>,
8274 >::deserialize(deserializer)?))
8275 }
8276 }
8277 match map.next_value::<DeserializeWith>() {
8278 Ok(deserialize_with) => deserialize_with.0,
8279 Err(err) => {
8280 return Err(err);
8281 }
8282 }
8283 });
8284 }
8285 Field::Url => {
8286 if r#url_property.is_some() {
8287 return Err(<A::Error as de::Error>::duplicate_field("url"));
8288 }
8289 r#url_property = Some({
8290 struct DeserializeWith(Vec<UrlProperty>);
8291 impl<'de> Deserialize<'de> for DeserializeWith {
8292 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
8293 where
8294 D: Deserializer<'de>,
8295 {
8296 Ok(DeserializeWith(serde_with::As::<
8297 serde_with::OneOrMany<serde_with::Same>,
8298 >::deserialize(deserializer)?))
8299 }
8300 }
8301 match map.next_value::<DeserializeWith>() {
8302 Ok(deserialize_with) => deserialize_with.0,
8303 Err(err) => {
8304 return Err(err);
8305 }
8306 }
8307 });
8308 }
8309 Field::Ignore => {
8310 let _ = map.next_value::<de::IgnoredAny>()?;
8311 }
8312 }
8313 }
8314 Ok(Recipe {
8315 r#cook_time: r#cook_time_property.unwrap_or_default(),
8316 r#cooking_method: r#cooking_method_property.unwrap_or_default(),
8317 r#ingredients: r#ingredients_property.unwrap_or_default(),
8318 r#nutrition: r#nutrition_property.unwrap_or_default(),
8319 r#recipe_category: r#recipe_category_property.unwrap_or_default(),
8320 r#recipe_cuisine: r#recipe_cuisine_property.unwrap_or_default(),
8321 r#recipe_ingredient: r#recipe_ingredient_property.unwrap_or_default(),
8322 r#recipe_instructions: r#recipe_instructions_property.unwrap_or_default(),
8323 r#recipe_yield: r#recipe_yield_property.unwrap_or_default(),
8324 r#suitable_for_diet: r#suitable_for_diet_property.unwrap_or_default(),
8325 r#about: r#about_property.unwrap_or_default(),
8326 r#abstract: r#abstract_property.unwrap_or_default(),
8327 r#access_mode: r#access_mode_property.unwrap_or_default(),
8328 r#access_mode_sufficient: r#access_mode_sufficient_property
8329 .unwrap_or_default(),
8330 r#accessibility_api: r#accessibility_api_property.unwrap_or_default(),
8331 r#accessibility_control: r#accessibility_control_property
8332 .unwrap_or_default(),
8333 r#accessibility_feature: r#accessibility_feature_property
8334 .unwrap_or_default(),
8335 r#accessibility_hazard: r#accessibility_hazard_property.unwrap_or_default(),
8336 r#accessibility_summary: r#accessibility_summary_property
8337 .unwrap_or_default(),
8338 r#accountable_person: r#accountable_person_property.unwrap_or_default(),
8339 r#acquire_license_page: r#acquire_license_page_property.unwrap_or_default(),
8340 r#aggregate_rating: r#aggregate_rating_property.unwrap_or_default(),
8341 r#alternative_headline: r#alternative_headline_property.unwrap_or_default(),
8342 r#archived_at: r#archived_at_property.unwrap_or_default(),
8343 r#assesses: r#assesses_property.unwrap_or_default(),
8344 r#associated_media: r#associated_media_property.unwrap_or_default(),
8345 r#audience: r#audience_property.unwrap_or_default(),
8346 r#audio: r#audio_property.unwrap_or_default(),
8347 r#author: r#author_property.unwrap_or_default(),
8348 r#award: r#award_property.unwrap_or_default(),
8349 r#awards: r#awards_property.unwrap_or_default(),
8350 r#character: r#character_property.unwrap_or_default(),
8351 r#citation: r#citation_property.unwrap_or_default(),
8352 r#comment: r#comment_property.unwrap_or_default(),
8353 r#comment_count: r#comment_count_property.unwrap_or_default(),
8354 r#conditions_of_access: r#conditions_of_access_property.unwrap_or_default(),
8355 r#content_location: r#content_location_property.unwrap_or_default(),
8356 r#content_rating: r#content_rating_property.unwrap_or_default(),
8357 r#content_reference_time: r#content_reference_time_property
8358 .unwrap_or_default(),
8359 r#contributor: r#contributor_property.unwrap_or_default(),
8360 r#copyright_holder: r#copyright_holder_property.unwrap_or_default(),
8361 r#copyright_notice: r#copyright_notice_property.unwrap_or_default(),
8362 r#copyright_year: r#copyright_year_property.unwrap_or_default(),
8363 r#correction: r#correction_property.unwrap_or_default(),
8364 r#country_of_origin: r#country_of_origin_property.unwrap_or_default(),
8365 r#creative_work_status: r#creative_work_status_property.unwrap_or_default(),
8366 r#creator: r#creator_property.unwrap_or_default(),
8367 r#credit_text: r#credit_text_property.unwrap_or_default(),
8368 r#date_created: r#date_created_property.unwrap_or_default(),
8369 r#date_modified: r#date_modified_property.unwrap_or_default(),
8370 r#date_published: r#date_published_property.unwrap_or_default(),
8371 r#discussion_url: r#discussion_url_property.unwrap_or_default(),
8372 r#edit_eidr: r#edit_eidr_property.unwrap_or_default(),
8373 r#editor: r#editor_property.unwrap_or_default(),
8374 r#educational_alignment: r#educational_alignment_property
8375 .unwrap_or_default(),
8376 r#educational_level: r#educational_level_property.unwrap_or_default(),
8377 r#educational_use: r#educational_use_property.unwrap_or_default(),
8378 r#encoding: r#encoding_property.unwrap_or_default(),
8379 r#encoding_format: r#encoding_format_property.unwrap_or_default(),
8380 r#encodings: r#encodings_property.unwrap_or_default(),
8381 r#example_of_work: r#example_of_work_property.unwrap_or_default(),
8382 r#expires: r#expires_property.unwrap_or_default(),
8383 r#file_format: r#file_format_property.unwrap_or_default(),
8384 r#funder: r#funder_property.unwrap_or_default(),
8385 r#funding: r#funding_property.unwrap_or_default(),
8386 r#genre: r#genre_property.unwrap_or_default(),
8387 r#has_part: r#has_part_property.unwrap_or_default(),
8388 r#headline: r#headline_property.unwrap_or_default(),
8389 r#in_language: r#in_language_property.unwrap_or_default(),
8390 r#interaction_statistic: r#interaction_statistic_property
8391 .unwrap_or_default(),
8392 r#interactivity_type: r#interactivity_type_property.unwrap_or_default(),
8393 r#interpreted_as_claim: r#interpreted_as_claim_property.unwrap_or_default(),
8394 r#is_accessible_for_free: r#is_accessible_for_free_property
8395 .unwrap_or_default(),
8396 r#is_based_on: r#is_based_on_property.unwrap_or_default(),
8397 r#is_based_on_url: r#is_based_on_url_property.unwrap_or_default(),
8398 r#is_family_friendly: r#is_family_friendly_property.unwrap_or_default(),
8399 r#is_part_of: r#is_part_of_property.unwrap_or_default(),
8400 r#keywords: r#keywords_property.unwrap_or_default(),
8401 r#learning_resource_type: r#learning_resource_type_property
8402 .unwrap_or_default(),
8403 r#license: r#license_property.unwrap_or_default(),
8404 r#location_created: r#location_created_property.unwrap_or_default(),
8405 r#main_entity: r#main_entity_property.unwrap_or_default(),
8406 r#maintainer: r#maintainer_property.unwrap_or_default(),
8407 r#material: r#material_property.unwrap_or_default(),
8408 r#material_extent: r#material_extent_property.unwrap_or_default(),
8409 r#mentions: r#mentions_property.unwrap_or_default(),
8410 r#offers: r#offers_property.unwrap_or_default(),
8411 r#pattern: r#pattern_property.unwrap_or_default(),
8412 r#position: r#position_property.unwrap_or_default(),
8413 r#producer: r#producer_property.unwrap_or_default(),
8414 r#provider: r#provider_property.unwrap_or_default(),
8415 r#publication: r#publication_property.unwrap_or_default(),
8416 r#publisher: r#publisher_property.unwrap_or_default(),
8417 r#publisher_imprint: r#publisher_imprint_property.unwrap_or_default(),
8418 r#publishing_principles: r#publishing_principles_property
8419 .unwrap_or_default(),
8420 r#recorded_at: r#recorded_at_property.unwrap_or_default(),
8421 r#released_event: r#released_event_property.unwrap_or_default(),
8422 r#review: r#review_property.unwrap_or_default(),
8423 r#reviews: r#reviews_property.unwrap_or_default(),
8424 r#schema_version: r#schema_version_property.unwrap_or_default(),
8425 r#sd_date_published: r#sd_date_published_property.unwrap_or_default(),
8426 r#sd_license: r#sd_license_property.unwrap_or_default(),
8427 r#sd_publisher: r#sd_publisher_property.unwrap_or_default(),
8428 r#size: r#size_property.unwrap_or_default(),
8429 r#source_organization: r#source_organization_property.unwrap_or_default(),
8430 r#spatial: r#spatial_property.unwrap_or_default(),
8431 r#spatial_coverage: r#spatial_coverage_property.unwrap_or_default(),
8432 r#sponsor: r#sponsor_property.unwrap_or_default(),
8433 r#teaches: r#teaches_property.unwrap_or_default(),
8434 r#temporal: r#temporal_property.unwrap_or_default(),
8435 r#temporal_coverage: r#temporal_coverage_property.unwrap_or_default(),
8436 r#text: r#text_property.unwrap_or_default(),
8437 r#thumbnail: r#thumbnail_property.unwrap_or_default(),
8438 r#thumbnail_url: r#thumbnail_url_property.unwrap_or_default(),
8439 r#time_required: r#time_required_property.unwrap_or_default(),
8440 r#translation_of_work: r#translation_of_work_property.unwrap_or_default(),
8441 r#translator: r#translator_property.unwrap_or_default(),
8442 r#typical_age_range: r#typical_age_range_property.unwrap_or_default(),
8443 r#usage_info: r#usage_info_property.unwrap_or_default(),
8444 r#version: r#version_property.unwrap_or_default(),
8445 r#video: r#video_property.unwrap_or_default(),
8446 r#work_example: r#work_example_property.unwrap_or_default(),
8447 r#work_translation: r#work_translation_property.unwrap_or_default(),
8448 r#estimated_cost: r#estimated_cost_property.unwrap_or_default(),
8449 r#perform_time: r#perform_time_property.unwrap_or_default(),
8450 r#prep_time: r#prep_time_property.unwrap_or_default(),
8451 r#step: r#step_property.unwrap_or_default(),
8452 r#steps: r#steps_property.unwrap_or_default(),
8453 r#supply: r#supply_property.unwrap_or_default(),
8454 r#tool: r#tool_property.unwrap_or_default(),
8455 r#total_time: r#total_time_property.unwrap_or_default(),
8456 r#yield: r#yield_property.unwrap_or_default(),
8457 r#additional_type: r#additional_type_property.unwrap_or_default(),
8458 r#alternate_name: r#alternate_name_property.unwrap_or_default(),
8459 r#description: r#description_property.unwrap_or_default(),
8460 r#disambiguating_description: r#disambiguating_description_property
8461 .unwrap_or_default(),
8462 r#identifier: r#identifier_property.unwrap_or_default(),
8463 r#image: r#image_property.unwrap_or_default(),
8464 r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
8465 r#name: r#name_property.unwrap_or_default(),
8466 r#potential_action: r#potential_action_property.unwrap_or_default(),
8467 r#same_as: r#same_as_property.unwrap_or_default(),
8468 r#subject_of: r#subject_of_property.unwrap_or_default(),
8469 r#url: r#url_property.unwrap_or_default(),
8470 })
8471 }
8472 }
8473 const FIELDS: &[&str] = &[
8474 "cookTime",
8475 "cookingMethod",
8476 "ingredients",
8477 "nutrition",
8478 "recipeCategory",
8479 "recipeCuisine",
8480 "recipeIngredient",
8481 "recipeInstructions",
8482 "recipeYield",
8483 "suitableForDiet",
8484 "about",
8485 "abstract",
8486 "accessMode",
8487 "accessModeSufficient",
8488 "accessibilityAPI",
8489 "accessibilityControl",
8490 "accessibilityFeature",
8491 "accessibilityHazard",
8492 "accessibilitySummary",
8493 "accountablePerson",
8494 "acquireLicensePage",
8495 "aggregateRating",
8496 "alternativeHeadline",
8497 "archivedAt",
8498 "assesses",
8499 "associatedMedia",
8500 "audience",
8501 "audio",
8502 "author",
8503 "award",
8504 "awards",
8505 "character",
8506 "citation",
8507 "comment",
8508 "commentCount",
8509 "conditionsOfAccess",
8510 "contentLocation",
8511 "contentRating",
8512 "contentReferenceTime",
8513 "contributor",
8514 "copyrightHolder",
8515 "copyrightNotice",
8516 "copyrightYear",
8517 "correction",
8518 "countryOfOrigin",
8519 "creativeWorkStatus",
8520 "creator",
8521 "creditText",
8522 "dateCreated",
8523 "dateModified",
8524 "datePublished",
8525 "discussionUrl",
8526 "editEIDR",
8527 "editor",
8528 "educationalAlignment",
8529 "educationalLevel",
8530 "educationalUse",
8531 "encoding",
8532 "encodingFormat",
8533 "encodings",
8534 "exampleOfWork",
8535 "expires",
8536 "fileFormat",
8537 "funder",
8538 "funding",
8539 "genre",
8540 "hasPart",
8541 "headline",
8542 "inLanguage",
8543 "interactionStatistic",
8544 "interactivityType",
8545 "interpretedAsClaim",
8546 "isAccessibleForFree",
8547 "isBasedOn",
8548 "isBasedOnUrl",
8549 "isFamilyFriendly",
8550 "isPartOf",
8551 "keywords",
8552 "learningResourceType",
8553 "license",
8554 "locationCreated",
8555 "mainEntity",
8556 "maintainer",
8557 "material",
8558 "materialExtent",
8559 "mentions",
8560 "offers",
8561 "pattern",
8562 "position",
8563 "producer",
8564 "provider",
8565 "publication",
8566 "publisher",
8567 "publisherImprint",
8568 "publishingPrinciples",
8569 "recordedAt",
8570 "releasedEvent",
8571 "review",
8572 "reviews",
8573 "schemaVersion",
8574 "sdDatePublished",
8575 "sdLicense",
8576 "sdPublisher",
8577 "size",
8578 "sourceOrganization",
8579 "spatial",
8580 "spatialCoverage",
8581 "sponsor",
8582 "teaches",
8583 "temporal",
8584 "temporalCoverage",
8585 "text",
8586 "thumbnail",
8587 "thumbnailUrl",
8588 "timeRequired",
8589 "translationOfWork",
8590 "translator",
8591 "typicalAgeRange",
8592 "usageInfo",
8593 "version",
8594 "video",
8595 "workExample",
8596 "workTranslation",
8597 "estimatedCost",
8598 "performTime",
8599 "prepTime",
8600 "step",
8601 "steps",
8602 "supply",
8603 "tool",
8604 "totalTime",
8605 "yield",
8606 "additionalType",
8607 "alternateName",
8608 "description",
8609 "disambiguatingDescription",
8610 "identifier",
8611 "image",
8612 "mainEntityOfPage",
8613 "name",
8614 "potentialAction",
8615 "sameAs",
8616 "subjectOf",
8617 "url",
8618 ];
8619 deserializer.deserialize_struct("Recipe", FIELDS, ClassVisitor)
8620 }
8621 }
8622}