1use super::*;
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct BroadcastService {
6 #[deprecated = "This schema is superseded by <https://schema.org/serviceArea>."]
8 pub r#area: Vec<AreaProperty>,
9 pub r#broadcast_affiliate_of: Vec<BroadcastAffiliateOfProperty>,
11 pub r#broadcast_display_name: Vec<BroadcastDisplayNameProperty>,
13 pub r#broadcast_frequency: Vec<BroadcastFrequencyProperty>,
15 pub r#broadcast_timezone: Vec<BroadcastTimezoneProperty>,
17 pub r#broadcaster: Vec<BroadcasterProperty>,
19 pub r#call_sign: Vec<CallSignProperty>,
21 pub r#has_broadcast_channel: Vec<HasBroadcastChannelProperty>,
23 pub r#in_language: Vec<InLanguageProperty>,
25 pub r#parent_service: Vec<ParentServiceProperty>,
27 pub r#video_format: Vec<VideoFormatProperty>,
29 pub r#aggregate_rating: Vec<AggregateRatingProperty>,
31 pub r#area_served: Vec<AreaServedProperty>,
33 pub r#audience: Vec<AudienceProperty>,
35 pub r#available_channel: Vec<AvailableChannelProperty>,
37 pub r#award: Vec<AwardProperty>,
39 pub r#brand: Vec<BrandProperty>,
41 pub r#broker: Vec<BrokerProperty>,
43 pub r#category: Vec<CategoryProperty>,
45 pub r#has_offer_catalog: Vec<HasOfferCatalogProperty>,
47 pub r#hours_available: Vec<HoursAvailableProperty>,
49 pub r#is_related_to: Vec<IsRelatedToProperty>,
51 pub r#is_similar_to: Vec<IsSimilarToProperty>,
53 pub r#logo: Vec<LogoProperty>,
55 pub r#offers: Vec<OffersProperty>,
57 #[deprecated = "This schema is superseded by <https://schema.org/serviceOutput>."]
59 pub r#produces: Vec<ProducesProperty>,
60 pub r#provider: Vec<ProviderProperty>,
62 pub r#provider_mobility: Vec<ProviderMobilityProperty>,
64 pub r#review: Vec<ReviewProperty>,
66 #[deprecated = "This schema is superseded by <https://schema.org/areaServed>."]
68 pub r#service_area: Vec<ServiceAreaProperty>,
69 #[deprecated = "This schema is superseded by <https://schema.org/audience>."]
71 pub r#service_audience: Vec<ServiceAudienceProperty>,
72 pub r#service_output: Vec<ServiceOutputProperty>,
74 pub r#service_type: Vec<ServiceTypeProperty>,
76 pub r#slogan: Vec<SloganProperty>,
78 pub r#terms_of_service: Vec<TermsOfServiceProperty>,
80 pub r#additional_type: Vec<AdditionalTypeProperty>,
82 pub r#alternate_name: Vec<AlternateNameProperty>,
84 pub r#description: Vec<DescriptionProperty>,
86 pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
88 pub r#identifier: Vec<IdentifierProperty>,
90 pub r#image: Vec<ImageProperty>,
92 pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
94 pub r#name: Vec<NameProperty>,
96 pub r#potential_action: Vec<PotentialActionProperty>,
98 pub r#same_as: Vec<SameAsProperty>,
100 pub r#subject_of: Vec<SubjectOfProperty>,
102 pub r#url: Vec<UrlProperty>,
104}
105pub trait BroadcastServiceTrait {
107 #[deprecated = "This schema is superseded by <https://schema.org/serviceArea>."]
109 fn get_area(&self) -> &[AreaProperty];
110 #[deprecated = "This schema is superseded by <https://schema.org/serviceArea>."]
112 fn take_area(&mut self) -> Vec<AreaProperty>;
113 fn get_broadcast_affiliate_of(&self) -> &[BroadcastAffiliateOfProperty];
115 fn take_broadcast_affiliate_of(&mut self) -> Vec<BroadcastAffiliateOfProperty>;
117 fn get_broadcast_display_name(&self) -> &[BroadcastDisplayNameProperty];
119 fn take_broadcast_display_name(&mut self) -> Vec<BroadcastDisplayNameProperty>;
121 fn get_broadcast_frequency(&self) -> &[BroadcastFrequencyProperty];
123 fn take_broadcast_frequency(&mut self) -> Vec<BroadcastFrequencyProperty>;
125 fn get_broadcast_timezone(&self) -> &[BroadcastTimezoneProperty];
127 fn take_broadcast_timezone(&mut self) -> Vec<BroadcastTimezoneProperty>;
129 fn get_broadcaster(&self) -> &[BroadcasterProperty];
131 fn take_broadcaster(&mut self) -> Vec<BroadcasterProperty>;
133 fn get_call_sign(&self) -> &[CallSignProperty];
135 fn take_call_sign(&mut self) -> Vec<CallSignProperty>;
137 fn get_has_broadcast_channel(&self) -> &[HasBroadcastChannelProperty];
139 fn take_has_broadcast_channel(&mut self) -> Vec<HasBroadcastChannelProperty>;
141 fn get_in_language(&self) -> &[InLanguageProperty];
143 fn take_in_language(&mut self) -> Vec<InLanguageProperty>;
145 fn get_parent_service(&self) -> &[ParentServiceProperty];
147 fn take_parent_service(&mut self) -> Vec<ParentServiceProperty>;
149 fn get_video_format(&self) -> &[VideoFormatProperty];
151 fn take_video_format(&mut self) -> Vec<VideoFormatProperty>;
153}
154impl BroadcastServiceTrait for BroadcastService {
155 fn get_area(&self) -> &[AreaProperty] {
156 self.r#area.as_slice()
157 }
158 fn take_area(&mut self) -> Vec<AreaProperty> {
159 std::mem::take(&mut self.r#area)
160 }
161 fn get_broadcast_affiliate_of(&self) -> &[BroadcastAffiliateOfProperty] {
162 self.r#broadcast_affiliate_of.as_slice()
163 }
164 fn take_broadcast_affiliate_of(&mut self) -> Vec<BroadcastAffiliateOfProperty> {
165 std::mem::take(&mut self.r#broadcast_affiliate_of)
166 }
167 fn get_broadcast_display_name(&self) -> &[BroadcastDisplayNameProperty] {
168 self.r#broadcast_display_name.as_slice()
169 }
170 fn take_broadcast_display_name(&mut self) -> Vec<BroadcastDisplayNameProperty> {
171 std::mem::take(&mut self.r#broadcast_display_name)
172 }
173 fn get_broadcast_frequency(&self) -> &[BroadcastFrequencyProperty] {
174 self.r#broadcast_frequency.as_slice()
175 }
176 fn take_broadcast_frequency(&mut self) -> Vec<BroadcastFrequencyProperty> {
177 std::mem::take(&mut self.r#broadcast_frequency)
178 }
179 fn get_broadcast_timezone(&self) -> &[BroadcastTimezoneProperty] {
180 self.r#broadcast_timezone.as_slice()
181 }
182 fn take_broadcast_timezone(&mut self) -> Vec<BroadcastTimezoneProperty> {
183 std::mem::take(&mut self.r#broadcast_timezone)
184 }
185 fn get_broadcaster(&self) -> &[BroadcasterProperty] {
186 self.r#broadcaster.as_slice()
187 }
188 fn take_broadcaster(&mut self) -> Vec<BroadcasterProperty> {
189 std::mem::take(&mut self.r#broadcaster)
190 }
191 fn get_call_sign(&self) -> &[CallSignProperty] {
192 self.r#call_sign.as_slice()
193 }
194 fn take_call_sign(&mut self) -> Vec<CallSignProperty> {
195 std::mem::take(&mut self.r#call_sign)
196 }
197 fn get_has_broadcast_channel(&self) -> &[HasBroadcastChannelProperty] {
198 self.r#has_broadcast_channel.as_slice()
199 }
200 fn take_has_broadcast_channel(&mut self) -> Vec<HasBroadcastChannelProperty> {
201 std::mem::take(&mut self.r#has_broadcast_channel)
202 }
203 fn get_in_language(&self) -> &[InLanguageProperty] {
204 self.r#in_language.as_slice()
205 }
206 fn take_in_language(&mut self) -> Vec<InLanguageProperty> {
207 std::mem::take(&mut self.r#in_language)
208 }
209 fn get_parent_service(&self) -> &[ParentServiceProperty] {
210 self.r#parent_service.as_slice()
211 }
212 fn take_parent_service(&mut self) -> Vec<ParentServiceProperty> {
213 std::mem::take(&mut self.r#parent_service)
214 }
215 fn get_video_format(&self) -> &[VideoFormatProperty] {
216 self.r#video_format.as_slice()
217 }
218 fn take_video_format(&mut self) -> Vec<VideoFormatProperty> {
219 std::mem::take(&mut self.r#video_format)
220 }
221}
222impl ServiceTrait for BroadcastService {
223 fn get_aggregate_rating(&self) -> &[AggregateRatingProperty] {
224 self.r#aggregate_rating.as_slice()
225 }
226 fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty> {
227 std::mem::take(&mut self.r#aggregate_rating)
228 }
229 fn get_area_served(&self) -> &[AreaServedProperty] {
230 self.r#area_served.as_slice()
231 }
232 fn take_area_served(&mut self) -> Vec<AreaServedProperty> {
233 std::mem::take(&mut self.r#area_served)
234 }
235 fn get_audience(&self) -> &[AudienceProperty] {
236 self.r#audience.as_slice()
237 }
238 fn take_audience(&mut self) -> Vec<AudienceProperty> {
239 std::mem::take(&mut self.r#audience)
240 }
241 fn get_available_channel(&self) -> &[AvailableChannelProperty] {
242 self.r#available_channel.as_slice()
243 }
244 fn take_available_channel(&mut self) -> Vec<AvailableChannelProperty> {
245 std::mem::take(&mut self.r#available_channel)
246 }
247 fn get_award(&self) -> &[AwardProperty] {
248 self.r#award.as_slice()
249 }
250 fn take_award(&mut self) -> Vec<AwardProperty> {
251 std::mem::take(&mut self.r#award)
252 }
253 fn get_brand(&self) -> &[BrandProperty] {
254 self.r#brand.as_slice()
255 }
256 fn take_brand(&mut self) -> Vec<BrandProperty> {
257 std::mem::take(&mut self.r#brand)
258 }
259 fn get_broker(&self) -> &[BrokerProperty] {
260 self.r#broker.as_slice()
261 }
262 fn take_broker(&mut self) -> Vec<BrokerProperty> {
263 std::mem::take(&mut self.r#broker)
264 }
265 fn get_category(&self) -> &[CategoryProperty] {
266 self.r#category.as_slice()
267 }
268 fn take_category(&mut self) -> Vec<CategoryProperty> {
269 std::mem::take(&mut self.r#category)
270 }
271 fn get_has_offer_catalog(&self) -> &[HasOfferCatalogProperty] {
272 self.r#has_offer_catalog.as_slice()
273 }
274 fn take_has_offer_catalog(&mut self) -> Vec<HasOfferCatalogProperty> {
275 std::mem::take(&mut self.r#has_offer_catalog)
276 }
277 fn get_hours_available(&self) -> &[HoursAvailableProperty] {
278 self.r#hours_available.as_slice()
279 }
280 fn take_hours_available(&mut self) -> Vec<HoursAvailableProperty> {
281 std::mem::take(&mut self.r#hours_available)
282 }
283 fn get_is_related_to(&self) -> &[IsRelatedToProperty] {
284 self.r#is_related_to.as_slice()
285 }
286 fn take_is_related_to(&mut self) -> Vec<IsRelatedToProperty> {
287 std::mem::take(&mut self.r#is_related_to)
288 }
289 fn get_is_similar_to(&self) -> &[IsSimilarToProperty] {
290 self.r#is_similar_to.as_slice()
291 }
292 fn take_is_similar_to(&mut self) -> Vec<IsSimilarToProperty> {
293 std::mem::take(&mut self.r#is_similar_to)
294 }
295 fn get_logo(&self) -> &[LogoProperty] {
296 self.r#logo.as_slice()
297 }
298 fn take_logo(&mut self) -> Vec<LogoProperty> {
299 std::mem::take(&mut self.r#logo)
300 }
301 fn get_offers(&self) -> &[OffersProperty] {
302 self.r#offers.as_slice()
303 }
304 fn take_offers(&mut self) -> Vec<OffersProperty> {
305 std::mem::take(&mut self.r#offers)
306 }
307 fn get_produces(&self) -> &[ProducesProperty] {
308 self.r#produces.as_slice()
309 }
310 fn take_produces(&mut self) -> Vec<ProducesProperty> {
311 std::mem::take(&mut self.r#produces)
312 }
313 fn get_provider(&self) -> &[ProviderProperty] {
314 self.r#provider.as_slice()
315 }
316 fn take_provider(&mut self) -> Vec<ProviderProperty> {
317 std::mem::take(&mut self.r#provider)
318 }
319 fn get_provider_mobility(&self) -> &[ProviderMobilityProperty] {
320 self.r#provider_mobility.as_slice()
321 }
322 fn take_provider_mobility(&mut self) -> Vec<ProviderMobilityProperty> {
323 std::mem::take(&mut self.r#provider_mobility)
324 }
325 fn get_review(&self) -> &[ReviewProperty] {
326 self.r#review.as_slice()
327 }
328 fn take_review(&mut self) -> Vec<ReviewProperty> {
329 std::mem::take(&mut self.r#review)
330 }
331 fn get_service_area(&self) -> &[ServiceAreaProperty] {
332 self.r#service_area.as_slice()
333 }
334 fn take_service_area(&mut self) -> Vec<ServiceAreaProperty> {
335 std::mem::take(&mut self.r#service_area)
336 }
337 fn get_service_audience(&self) -> &[ServiceAudienceProperty] {
338 self.r#service_audience.as_slice()
339 }
340 fn take_service_audience(&mut self) -> Vec<ServiceAudienceProperty> {
341 std::mem::take(&mut self.r#service_audience)
342 }
343 fn get_service_output(&self) -> &[ServiceOutputProperty] {
344 self.r#service_output.as_slice()
345 }
346 fn take_service_output(&mut self) -> Vec<ServiceOutputProperty> {
347 std::mem::take(&mut self.r#service_output)
348 }
349 fn get_service_type(&self) -> &[ServiceTypeProperty] {
350 self.r#service_type.as_slice()
351 }
352 fn take_service_type(&mut self) -> Vec<ServiceTypeProperty> {
353 std::mem::take(&mut self.r#service_type)
354 }
355 fn get_slogan(&self) -> &[SloganProperty] {
356 self.r#slogan.as_slice()
357 }
358 fn take_slogan(&mut self) -> Vec<SloganProperty> {
359 std::mem::take(&mut self.r#slogan)
360 }
361 fn get_terms_of_service(&self) -> &[TermsOfServiceProperty] {
362 self.r#terms_of_service.as_slice()
363 }
364 fn take_terms_of_service(&mut self) -> Vec<TermsOfServiceProperty> {
365 std::mem::take(&mut self.r#terms_of_service)
366 }
367}
368impl ThingTrait for BroadcastService {
369 fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
370 self.r#additional_type.as_slice()
371 }
372 fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
373 std::mem::take(&mut self.r#additional_type)
374 }
375 fn get_alternate_name(&self) -> &[AlternateNameProperty] {
376 self.r#alternate_name.as_slice()
377 }
378 fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
379 std::mem::take(&mut self.r#alternate_name)
380 }
381 fn get_description(&self) -> &[DescriptionProperty] {
382 self.r#description.as_slice()
383 }
384 fn take_description(&mut self) -> Vec<DescriptionProperty> {
385 std::mem::take(&mut self.r#description)
386 }
387 fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
388 self.r#disambiguating_description.as_slice()
389 }
390 fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
391 std::mem::take(&mut self.r#disambiguating_description)
392 }
393 fn get_identifier(&self) -> &[IdentifierProperty] {
394 self.r#identifier.as_slice()
395 }
396 fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
397 std::mem::take(&mut self.r#identifier)
398 }
399 fn get_image(&self) -> &[ImageProperty] {
400 self.r#image.as_slice()
401 }
402 fn take_image(&mut self) -> Vec<ImageProperty> {
403 std::mem::take(&mut self.r#image)
404 }
405 fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
406 self.r#main_entity_of_page.as_slice()
407 }
408 fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
409 std::mem::take(&mut self.r#main_entity_of_page)
410 }
411 fn get_name(&self) -> &[NameProperty] {
412 self.r#name.as_slice()
413 }
414 fn take_name(&mut self) -> Vec<NameProperty> {
415 std::mem::take(&mut self.r#name)
416 }
417 fn get_potential_action(&self) -> &[PotentialActionProperty] {
418 self.r#potential_action.as_slice()
419 }
420 fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
421 std::mem::take(&mut self.r#potential_action)
422 }
423 fn get_same_as(&self) -> &[SameAsProperty] {
424 self.r#same_as.as_slice()
425 }
426 fn take_same_as(&mut self) -> Vec<SameAsProperty> {
427 std::mem::take(&mut self.r#same_as)
428 }
429 fn get_subject_of(&self) -> &[SubjectOfProperty] {
430 self.r#subject_of.as_slice()
431 }
432 fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
433 std::mem::take(&mut self.r#subject_of)
434 }
435 fn get_url(&self) -> &[UrlProperty] {
436 self.r#url.as_slice()
437 }
438 fn take_url(&mut self) -> Vec<UrlProperty> {
439 std::mem::take(&mut self.r#url)
440 }
441}
442#[cfg(feature = "serde")]
443mod serde {
444 use std::{fmt, fmt::Formatter};
445
446 use ::serde::{
447 de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
448 };
449
450 use super::*;
451 impl Serialize for BroadcastService {
452 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
453 where
454 S: Serializer,
455 {
456 let len: usize = [
457 !Vec::is_empty(&self.r#area) as usize,
458 !Vec::is_empty(&self.r#broadcast_affiliate_of) as usize,
459 !Vec::is_empty(&self.r#broadcast_display_name) as usize,
460 !Vec::is_empty(&self.r#broadcast_frequency) as usize,
461 !Vec::is_empty(&self.r#broadcast_timezone) as usize,
462 !Vec::is_empty(&self.r#broadcaster) as usize,
463 !Vec::is_empty(&self.r#call_sign) as usize,
464 !Vec::is_empty(&self.r#has_broadcast_channel) as usize,
465 !Vec::is_empty(&self.r#in_language) as usize,
466 !Vec::is_empty(&self.r#parent_service) as usize,
467 !Vec::is_empty(&self.r#video_format) as usize,
468 !Vec::is_empty(&self.r#aggregate_rating) as usize,
469 !Vec::is_empty(&self.r#area_served) as usize,
470 !Vec::is_empty(&self.r#audience) as usize,
471 !Vec::is_empty(&self.r#available_channel) as usize,
472 !Vec::is_empty(&self.r#award) as usize,
473 !Vec::is_empty(&self.r#brand) as usize,
474 !Vec::is_empty(&self.r#broker) as usize,
475 !Vec::is_empty(&self.r#category) as usize,
476 !Vec::is_empty(&self.r#has_offer_catalog) as usize,
477 !Vec::is_empty(&self.r#hours_available) as usize,
478 !Vec::is_empty(&self.r#is_related_to) as usize,
479 !Vec::is_empty(&self.r#is_similar_to) as usize,
480 !Vec::is_empty(&self.r#logo) as usize,
481 !Vec::is_empty(&self.r#offers) as usize,
482 !Vec::is_empty(&self.r#produces) as usize,
483 !Vec::is_empty(&self.r#provider) as usize,
484 !Vec::is_empty(&self.r#provider_mobility) as usize,
485 !Vec::is_empty(&self.r#review) as usize,
486 !Vec::is_empty(&self.r#service_area) as usize,
487 !Vec::is_empty(&self.r#service_audience) as usize,
488 !Vec::is_empty(&self.r#service_output) as usize,
489 !Vec::is_empty(&self.r#service_type) as usize,
490 !Vec::is_empty(&self.r#slogan) as usize,
491 !Vec::is_empty(&self.r#terms_of_service) as usize,
492 !Vec::is_empty(&self.r#additional_type) as usize,
493 !Vec::is_empty(&self.r#alternate_name) as usize,
494 !Vec::is_empty(&self.r#description) as usize,
495 !Vec::is_empty(&self.r#disambiguating_description) as usize,
496 !Vec::is_empty(&self.r#identifier) as usize,
497 !Vec::is_empty(&self.r#image) as usize,
498 !Vec::is_empty(&self.r#main_entity_of_page) as usize,
499 !Vec::is_empty(&self.r#name) as usize,
500 !Vec::is_empty(&self.r#potential_action) as usize,
501 !Vec::is_empty(&self.r#same_as) as usize,
502 !Vec::is_empty(&self.r#subject_of) as usize,
503 !Vec::is_empty(&self.r#url) as usize,
504 ]
505 .iter()
506 .sum();
507 let mut serialize_struct =
508 Serializer::serialize_struct(serializer, "BroadcastService", len)?;
509 if !Vec::is_empty(&self.r#area) {
510 serialize_struct.serialize_field("area", {
511 struct SerializeWith<'a>(&'a Vec<AreaProperty>);
512 impl<'a> Serialize for SerializeWith<'a> {
513 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
514 where
515 S: Serializer,
516 {
517 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
518 self.0, serializer,
519 )
520 }
521 }
522 &SerializeWith(&self.r#area)
523 })?;
524 } else {
525 serialize_struct.skip_field("area")?;
526 }
527 if !Vec::is_empty(&self.r#broadcast_affiliate_of) {
528 serialize_struct.serialize_field("broadcastAffiliateOf", {
529 struct SerializeWith<'a>(&'a Vec<BroadcastAffiliateOfProperty>);
530 impl<'a> Serialize for SerializeWith<'a> {
531 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
532 where
533 S: Serializer,
534 {
535 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
536 self.0, serializer,
537 )
538 }
539 }
540 &SerializeWith(&self.r#broadcast_affiliate_of)
541 })?;
542 } else {
543 serialize_struct.skip_field("broadcastAffiliateOf")?;
544 }
545 if !Vec::is_empty(&self.r#broadcast_display_name) {
546 serialize_struct.serialize_field("broadcastDisplayName", {
547 struct SerializeWith<'a>(&'a Vec<BroadcastDisplayNameProperty>);
548 impl<'a> Serialize for SerializeWith<'a> {
549 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
550 where
551 S: Serializer,
552 {
553 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
554 self.0, serializer,
555 )
556 }
557 }
558 &SerializeWith(&self.r#broadcast_display_name)
559 })?;
560 } else {
561 serialize_struct.skip_field("broadcastDisplayName")?;
562 }
563 if !Vec::is_empty(&self.r#broadcast_frequency) {
564 serialize_struct.serialize_field("broadcastFrequency", {
565 struct SerializeWith<'a>(&'a Vec<BroadcastFrequencyProperty>);
566 impl<'a> Serialize for SerializeWith<'a> {
567 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
568 where
569 S: Serializer,
570 {
571 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
572 self.0, serializer,
573 )
574 }
575 }
576 &SerializeWith(&self.r#broadcast_frequency)
577 })?;
578 } else {
579 serialize_struct.skip_field("broadcastFrequency")?;
580 }
581 if !Vec::is_empty(&self.r#broadcast_timezone) {
582 serialize_struct.serialize_field("broadcastTimezone", {
583 struct SerializeWith<'a>(&'a Vec<BroadcastTimezoneProperty>);
584 impl<'a> Serialize for SerializeWith<'a> {
585 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
586 where
587 S: Serializer,
588 {
589 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
590 self.0, serializer,
591 )
592 }
593 }
594 &SerializeWith(&self.r#broadcast_timezone)
595 })?;
596 } else {
597 serialize_struct.skip_field("broadcastTimezone")?;
598 }
599 if !Vec::is_empty(&self.r#broadcaster) {
600 serialize_struct.serialize_field("broadcaster", {
601 struct SerializeWith<'a>(&'a Vec<BroadcasterProperty>);
602 impl<'a> Serialize for SerializeWith<'a> {
603 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
604 where
605 S: Serializer,
606 {
607 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
608 self.0, serializer,
609 )
610 }
611 }
612 &SerializeWith(&self.r#broadcaster)
613 })?;
614 } else {
615 serialize_struct.skip_field("broadcaster")?;
616 }
617 if !Vec::is_empty(&self.r#call_sign) {
618 serialize_struct.serialize_field("callSign", {
619 struct SerializeWith<'a>(&'a Vec<CallSignProperty>);
620 impl<'a> Serialize for SerializeWith<'a> {
621 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
622 where
623 S: Serializer,
624 {
625 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
626 self.0, serializer,
627 )
628 }
629 }
630 &SerializeWith(&self.r#call_sign)
631 })?;
632 } else {
633 serialize_struct.skip_field("callSign")?;
634 }
635 if !Vec::is_empty(&self.r#has_broadcast_channel) {
636 serialize_struct.serialize_field("hasBroadcastChannel", {
637 struct SerializeWith<'a>(&'a Vec<HasBroadcastChannelProperty>);
638 impl<'a> Serialize for SerializeWith<'a> {
639 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
640 where
641 S: Serializer,
642 {
643 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
644 self.0, serializer,
645 )
646 }
647 }
648 &SerializeWith(&self.r#has_broadcast_channel)
649 })?;
650 } else {
651 serialize_struct.skip_field("hasBroadcastChannel")?;
652 }
653 if !Vec::is_empty(&self.r#in_language) {
654 serialize_struct.serialize_field("inLanguage", {
655 struct SerializeWith<'a>(&'a Vec<InLanguageProperty>);
656 impl<'a> Serialize for SerializeWith<'a> {
657 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
658 where
659 S: Serializer,
660 {
661 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
662 self.0, serializer,
663 )
664 }
665 }
666 &SerializeWith(&self.r#in_language)
667 })?;
668 } else {
669 serialize_struct.skip_field("inLanguage")?;
670 }
671 if !Vec::is_empty(&self.r#parent_service) {
672 serialize_struct.serialize_field("parentService", {
673 struct SerializeWith<'a>(&'a Vec<ParentServiceProperty>);
674 impl<'a> Serialize for SerializeWith<'a> {
675 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
676 where
677 S: Serializer,
678 {
679 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
680 self.0, serializer,
681 )
682 }
683 }
684 &SerializeWith(&self.r#parent_service)
685 })?;
686 } else {
687 serialize_struct.skip_field("parentService")?;
688 }
689 if !Vec::is_empty(&self.r#video_format) {
690 serialize_struct.serialize_field("videoFormat", {
691 struct SerializeWith<'a>(&'a Vec<VideoFormatProperty>);
692 impl<'a> Serialize for SerializeWith<'a> {
693 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
694 where
695 S: Serializer,
696 {
697 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
698 self.0, serializer,
699 )
700 }
701 }
702 &SerializeWith(&self.r#video_format)
703 })?;
704 } else {
705 serialize_struct.skip_field("videoFormat")?;
706 }
707 if !Vec::is_empty(&self.r#aggregate_rating) {
708 serialize_struct.serialize_field("aggregateRating", {
709 struct SerializeWith<'a>(&'a Vec<AggregateRatingProperty>);
710 impl<'a> Serialize for SerializeWith<'a> {
711 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
712 where
713 S: Serializer,
714 {
715 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
716 self.0, serializer,
717 )
718 }
719 }
720 &SerializeWith(&self.r#aggregate_rating)
721 })?;
722 } else {
723 serialize_struct.skip_field("aggregateRating")?;
724 }
725 if !Vec::is_empty(&self.r#area_served) {
726 serialize_struct.serialize_field("areaServed", {
727 struct SerializeWith<'a>(&'a Vec<AreaServedProperty>);
728 impl<'a> Serialize for SerializeWith<'a> {
729 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
730 where
731 S: Serializer,
732 {
733 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
734 self.0, serializer,
735 )
736 }
737 }
738 &SerializeWith(&self.r#area_served)
739 })?;
740 } else {
741 serialize_struct.skip_field("areaServed")?;
742 }
743 if !Vec::is_empty(&self.r#audience) {
744 serialize_struct.serialize_field("audience", {
745 struct SerializeWith<'a>(&'a Vec<AudienceProperty>);
746 impl<'a> Serialize for SerializeWith<'a> {
747 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
748 where
749 S: Serializer,
750 {
751 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
752 self.0, serializer,
753 )
754 }
755 }
756 &SerializeWith(&self.r#audience)
757 })?;
758 } else {
759 serialize_struct.skip_field("audience")?;
760 }
761 if !Vec::is_empty(&self.r#available_channel) {
762 serialize_struct.serialize_field("availableChannel", {
763 struct SerializeWith<'a>(&'a Vec<AvailableChannelProperty>);
764 impl<'a> Serialize for SerializeWith<'a> {
765 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
766 where
767 S: Serializer,
768 {
769 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
770 self.0, serializer,
771 )
772 }
773 }
774 &SerializeWith(&self.r#available_channel)
775 })?;
776 } else {
777 serialize_struct.skip_field("availableChannel")?;
778 }
779 if !Vec::is_empty(&self.r#award) {
780 serialize_struct.serialize_field("award", {
781 struct SerializeWith<'a>(&'a Vec<AwardProperty>);
782 impl<'a> Serialize for SerializeWith<'a> {
783 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
784 where
785 S: Serializer,
786 {
787 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
788 self.0, serializer,
789 )
790 }
791 }
792 &SerializeWith(&self.r#award)
793 })?;
794 } else {
795 serialize_struct.skip_field("award")?;
796 }
797 if !Vec::is_empty(&self.r#brand) {
798 serialize_struct.serialize_field("brand", {
799 struct SerializeWith<'a>(&'a Vec<BrandProperty>);
800 impl<'a> Serialize for SerializeWith<'a> {
801 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
802 where
803 S: Serializer,
804 {
805 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
806 self.0, serializer,
807 )
808 }
809 }
810 &SerializeWith(&self.r#brand)
811 })?;
812 } else {
813 serialize_struct.skip_field("brand")?;
814 }
815 if !Vec::is_empty(&self.r#broker) {
816 serialize_struct.serialize_field("broker", {
817 struct SerializeWith<'a>(&'a Vec<BrokerProperty>);
818 impl<'a> Serialize for SerializeWith<'a> {
819 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
820 where
821 S: Serializer,
822 {
823 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
824 self.0, serializer,
825 )
826 }
827 }
828 &SerializeWith(&self.r#broker)
829 })?;
830 } else {
831 serialize_struct.skip_field("broker")?;
832 }
833 if !Vec::is_empty(&self.r#category) {
834 serialize_struct.serialize_field("category", {
835 struct SerializeWith<'a>(&'a Vec<CategoryProperty>);
836 impl<'a> Serialize for SerializeWith<'a> {
837 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
838 where
839 S: Serializer,
840 {
841 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
842 self.0, serializer,
843 )
844 }
845 }
846 &SerializeWith(&self.r#category)
847 })?;
848 } else {
849 serialize_struct.skip_field("category")?;
850 }
851 if !Vec::is_empty(&self.r#has_offer_catalog) {
852 serialize_struct.serialize_field("hasOfferCatalog", {
853 struct SerializeWith<'a>(&'a Vec<HasOfferCatalogProperty>);
854 impl<'a> Serialize for SerializeWith<'a> {
855 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
856 where
857 S: Serializer,
858 {
859 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
860 self.0, serializer,
861 )
862 }
863 }
864 &SerializeWith(&self.r#has_offer_catalog)
865 })?;
866 } else {
867 serialize_struct.skip_field("hasOfferCatalog")?;
868 }
869 if !Vec::is_empty(&self.r#hours_available) {
870 serialize_struct.serialize_field("hoursAvailable", {
871 struct SerializeWith<'a>(&'a Vec<HoursAvailableProperty>);
872 impl<'a> Serialize for SerializeWith<'a> {
873 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
874 where
875 S: Serializer,
876 {
877 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
878 self.0, serializer,
879 )
880 }
881 }
882 &SerializeWith(&self.r#hours_available)
883 })?;
884 } else {
885 serialize_struct.skip_field("hoursAvailable")?;
886 }
887 if !Vec::is_empty(&self.r#is_related_to) {
888 serialize_struct.serialize_field("isRelatedTo", {
889 struct SerializeWith<'a>(&'a Vec<IsRelatedToProperty>);
890 impl<'a> Serialize for SerializeWith<'a> {
891 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
892 where
893 S: Serializer,
894 {
895 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
896 self.0, serializer,
897 )
898 }
899 }
900 &SerializeWith(&self.r#is_related_to)
901 })?;
902 } else {
903 serialize_struct.skip_field("isRelatedTo")?;
904 }
905 if !Vec::is_empty(&self.r#is_similar_to) {
906 serialize_struct.serialize_field("isSimilarTo", {
907 struct SerializeWith<'a>(&'a Vec<IsSimilarToProperty>);
908 impl<'a> Serialize for SerializeWith<'a> {
909 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
910 where
911 S: Serializer,
912 {
913 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
914 self.0, serializer,
915 )
916 }
917 }
918 &SerializeWith(&self.r#is_similar_to)
919 })?;
920 } else {
921 serialize_struct.skip_field("isSimilarTo")?;
922 }
923 if !Vec::is_empty(&self.r#logo) {
924 serialize_struct.serialize_field("logo", {
925 struct SerializeWith<'a>(&'a Vec<LogoProperty>);
926 impl<'a> Serialize for SerializeWith<'a> {
927 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
928 where
929 S: Serializer,
930 {
931 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
932 self.0, serializer,
933 )
934 }
935 }
936 &SerializeWith(&self.r#logo)
937 })?;
938 } else {
939 serialize_struct.skip_field("logo")?;
940 }
941 if !Vec::is_empty(&self.r#offers) {
942 serialize_struct.serialize_field("offers", {
943 struct SerializeWith<'a>(&'a Vec<OffersProperty>);
944 impl<'a> Serialize for SerializeWith<'a> {
945 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
946 where
947 S: Serializer,
948 {
949 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
950 self.0, serializer,
951 )
952 }
953 }
954 &SerializeWith(&self.r#offers)
955 })?;
956 } else {
957 serialize_struct.skip_field("offers")?;
958 }
959 if !Vec::is_empty(&self.r#produces) {
960 serialize_struct.serialize_field("produces", {
961 struct SerializeWith<'a>(&'a Vec<ProducesProperty>);
962 impl<'a> Serialize for SerializeWith<'a> {
963 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
964 where
965 S: Serializer,
966 {
967 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
968 self.0, serializer,
969 )
970 }
971 }
972 &SerializeWith(&self.r#produces)
973 })?;
974 } else {
975 serialize_struct.skip_field("produces")?;
976 }
977 if !Vec::is_empty(&self.r#provider) {
978 serialize_struct.serialize_field("provider", {
979 struct SerializeWith<'a>(&'a Vec<ProviderProperty>);
980 impl<'a> Serialize for SerializeWith<'a> {
981 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
982 where
983 S: Serializer,
984 {
985 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
986 self.0, serializer,
987 )
988 }
989 }
990 &SerializeWith(&self.r#provider)
991 })?;
992 } else {
993 serialize_struct.skip_field("provider")?;
994 }
995 if !Vec::is_empty(&self.r#provider_mobility) {
996 serialize_struct.serialize_field("providerMobility", {
997 struct SerializeWith<'a>(&'a Vec<ProviderMobilityProperty>);
998 impl<'a> Serialize for SerializeWith<'a> {
999 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1000 where
1001 S: Serializer,
1002 {
1003 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1004 self.0, serializer,
1005 )
1006 }
1007 }
1008 &SerializeWith(&self.r#provider_mobility)
1009 })?;
1010 } else {
1011 serialize_struct.skip_field("providerMobility")?;
1012 }
1013 if !Vec::is_empty(&self.r#review) {
1014 serialize_struct.serialize_field("review", {
1015 struct SerializeWith<'a>(&'a Vec<ReviewProperty>);
1016 impl<'a> Serialize for SerializeWith<'a> {
1017 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1018 where
1019 S: Serializer,
1020 {
1021 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1022 self.0, serializer,
1023 )
1024 }
1025 }
1026 &SerializeWith(&self.r#review)
1027 })?;
1028 } else {
1029 serialize_struct.skip_field("review")?;
1030 }
1031 if !Vec::is_empty(&self.r#service_area) {
1032 serialize_struct.serialize_field("serviceArea", {
1033 struct SerializeWith<'a>(&'a Vec<ServiceAreaProperty>);
1034 impl<'a> Serialize for SerializeWith<'a> {
1035 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1036 where
1037 S: Serializer,
1038 {
1039 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1040 self.0, serializer,
1041 )
1042 }
1043 }
1044 &SerializeWith(&self.r#service_area)
1045 })?;
1046 } else {
1047 serialize_struct.skip_field("serviceArea")?;
1048 }
1049 if !Vec::is_empty(&self.r#service_audience) {
1050 serialize_struct.serialize_field("serviceAudience", {
1051 struct SerializeWith<'a>(&'a Vec<ServiceAudienceProperty>);
1052 impl<'a> Serialize for SerializeWith<'a> {
1053 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1054 where
1055 S: Serializer,
1056 {
1057 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1058 self.0, serializer,
1059 )
1060 }
1061 }
1062 &SerializeWith(&self.r#service_audience)
1063 })?;
1064 } else {
1065 serialize_struct.skip_field("serviceAudience")?;
1066 }
1067 if !Vec::is_empty(&self.r#service_output) {
1068 serialize_struct.serialize_field("serviceOutput", {
1069 struct SerializeWith<'a>(&'a Vec<ServiceOutputProperty>);
1070 impl<'a> Serialize for SerializeWith<'a> {
1071 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1072 where
1073 S: Serializer,
1074 {
1075 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1076 self.0, serializer,
1077 )
1078 }
1079 }
1080 &SerializeWith(&self.r#service_output)
1081 })?;
1082 } else {
1083 serialize_struct.skip_field("serviceOutput")?;
1084 }
1085 if !Vec::is_empty(&self.r#service_type) {
1086 serialize_struct.serialize_field("serviceType", {
1087 struct SerializeWith<'a>(&'a Vec<ServiceTypeProperty>);
1088 impl<'a> Serialize for SerializeWith<'a> {
1089 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1090 where
1091 S: Serializer,
1092 {
1093 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1094 self.0, serializer,
1095 )
1096 }
1097 }
1098 &SerializeWith(&self.r#service_type)
1099 })?;
1100 } else {
1101 serialize_struct.skip_field("serviceType")?;
1102 }
1103 if !Vec::is_empty(&self.r#slogan) {
1104 serialize_struct.serialize_field("slogan", {
1105 struct SerializeWith<'a>(&'a Vec<SloganProperty>);
1106 impl<'a> Serialize for SerializeWith<'a> {
1107 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1108 where
1109 S: Serializer,
1110 {
1111 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1112 self.0, serializer,
1113 )
1114 }
1115 }
1116 &SerializeWith(&self.r#slogan)
1117 })?;
1118 } else {
1119 serialize_struct.skip_field("slogan")?;
1120 }
1121 if !Vec::is_empty(&self.r#terms_of_service) {
1122 serialize_struct.serialize_field("termsOfService", {
1123 struct SerializeWith<'a>(&'a Vec<TermsOfServiceProperty>);
1124 impl<'a> Serialize for SerializeWith<'a> {
1125 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1126 where
1127 S: Serializer,
1128 {
1129 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1130 self.0, serializer,
1131 )
1132 }
1133 }
1134 &SerializeWith(&self.r#terms_of_service)
1135 })?;
1136 } else {
1137 serialize_struct.skip_field("termsOfService")?;
1138 }
1139 if !Vec::is_empty(&self.r#additional_type) {
1140 serialize_struct.serialize_field("additionalType", {
1141 struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
1142 impl<'a> Serialize for SerializeWith<'a> {
1143 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1144 where
1145 S: Serializer,
1146 {
1147 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1148 self.0, serializer,
1149 )
1150 }
1151 }
1152 &SerializeWith(&self.r#additional_type)
1153 })?;
1154 } else {
1155 serialize_struct.skip_field("additionalType")?;
1156 }
1157 if !Vec::is_empty(&self.r#alternate_name) {
1158 serialize_struct.serialize_field("alternateName", {
1159 struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
1160 impl<'a> Serialize for SerializeWith<'a> {
1161 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1162 where
1163 S: Serializer,
1164 {
1165 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1166 self.0, serializer,
1167 )
1168 }
1169 }
1170 &SerializeWith(&self.r#alternate_name)
1171 })?;
1172 } else {
1173 serialize_struct.skip_field("alternateName")?;
1174 }
1175 if !Vec::is_empty(&self.r#description) {
1176 serialize_struct.serialize_field("description", {
1177 struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
1178 impl<'a> Serialize for SerializeWith<'a> {
1179 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1180 where
1181 S: Serializer,
1182 {
1183 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1184 self.0, serializer,
1185 )
1186 }
1187 }
1188 &SerializeWith(&self.r#description)
1189 })?;
1190 } else {
1191 serialize_struct.skip_field("description")?;
1192 }
1193 if !Vec::is_empty(&self.r#disambiguating_description) {
1194 serialize_struct.serialize_field("disambiguatingDescription", {
1195 struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
1196 impl<'a> Serialize for SerializeWith<'a> {
1197 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1198 where
1199 S: Serializer,
1200 {
1201 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1202 self.0, serializer,
1203 )
1204 }
1205 }
1206 &SerializeWith(&self.r#disambiguating_description)
1207 })?;
1208 } else {
1209 serialize_struct.skip_field("disambiguatingDescription")?;
1210 }
1211 if !Vec::is_empty(&self.r#identifier) {
1212 serialize_struct.serialize_field("identifier", {
1213 struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
1214 impl<'a> Serialize for SerializeWith<'a> {
1215 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1216 where
1217 S: Serializer,
1218 {
1219 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1220 self.0, serializer,
1221 )
1222 }
1223 }
1224 &SerializeWith(&self.r#identifier)
1225 })?;
1226 } else {
1227 serialize_struct.skip_field("identifier")?;
1228 }
1229 if !Vec::is_empty(&self.r#image) {
1230 serialize_struct.serialize_field("image", {
1231 struct SerializeWith<'a>(&'a Vec<ImageProperty>);
1232 impl<'a> Serialize for SerializeWith<'a> {
1233 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1234 where
1235 S: Serializer,
1236 {
1237 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1238 self.0, serializer,
1239 )
1240 }
1241 }
1242 &SerializeWith(&self.r#image)
1243 })?;
1244 } else {
1245 serialize_struct.skip_field("image")?;
1246 }
1247 if !Vec::is_empty(&self.r#main_entity_of_page) {
1248 serialize_struct.serialize_field("mainEntityOfPage", {
1249 struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
1250 impl<'a> Serialize for SerializeWith<'a> {
1251 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1252 where
1253 S: Serializer,
1254 {
1255 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1256 self.0, serializer,
1257 )
1258 }
1259 }
1260 &SerializeWith(&self.r#main_entity_of_page)
1261 })?;
1262 } else {
1263 serialize_struct.skip_field("mainEntityOfPage")?;
1264 }
1265 if !Vec::is_empty(&self.r#name) {
1266 serialize_struct.serialize_field("name", {
1267 struct SerializeWith<'a>(&'a Vec<NameProperty>);
1268 impl<'a> Serialize for SerializeWith<'a> {
1269 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1270 where
1271 S: Serializer,
1272 {
1273 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1274 self.0, serializer,
1275 )
1276 }
1277 }
1278 &SerializeWith(&self.r#name)
1279 })?;
1280 } else {
1281 serialize_struct.skip_field("name")?;
1282 }
1283 if !Vec::is_empty(&self.r#potential_action) {
1284 serialize_struct.serialize_field("potentialAction", {
1285 struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
1286 impl<'a> Serialize for SerializeWith<'a> {
1287 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1288 where
1289 S: Serializer,
1290 {
1291 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1292 self.0, serializer,
1293 )
1294 }
1295 }
1296 &SerializeWith(&self.r#potential_action)
1297 })?;
1298 } else {
1299 serialize_struct.skip_field("potentialAction")?;
1300 }
1301 if !Vec::is_empty(&self.r#same_as) {
1302 serialize_struct.serialize_field("sameAs", {
1303 struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
1304 impl<'a> Serialize for SerializeWith<'a> {
1305 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1306 where
1307 S: Serializer,
1308 {
1309 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1310 self.0, serializer,
1311 )
1312 }
1313 }
1314 &SerializeWith(&self.r#same_as)
1315 })?;
1316 } else {
1317 serialize_struct.skip_field("sameAs")?;
1318 }
1319 if !Vec::is_empty(&self.r#subject_of) {
1320 serialize_struct.serialize_field("subjectOf", {
1321 struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
1322 impl<'a> Serialize for SerializeWith<'a> {
1323 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1324 where
1325 S: Serializer,
1326 {
1327 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1328 self.0, serializer,
1329 )
1330 }
1331 }
1332 &SerializeWith(&self.r#subject_of)
1333 })?;
1334 } else {
1335 serialize_struct.skip_field("subjectOf")?;
1336 }
1337 if !Vec::is_empty(&self.r#url) {
1338 serialize_struct.serialize_field("url", {
1339 struct SerializeWith<'a>(&'a Vec<UrlProperty>);
1340 impl<'a> Serialize for SerializeWith<'a> {
1341 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1342 where
1343 S: Serializer,
1344 {
1345 serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1346 self.0, serializer,
1347 )
1348 }
1349 }
1350 &SerializeWith(&self.r#url)
1351 })?;
1352 } else {
1353 serialize_struct.skip_field("url")?;
1354 }
1355 serialize_struct.end()
1356 }
1357 }
1358 impl<'de> Deserialize<'de> for BroadcastService {
1359 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1360 where
1361 D: Deserializer<'de>,
1362 {
1363 enum Field {
1364 Area,
1365 BroadcastAffiliateOf,
1366 BroadcastDisplayName,
1367 BroadcastFrequency,
1368 BroadcastTimezone,
1369 Broadcaster,
1370 CallSign,
1371 HasBroadcastChannel,
1372 InLanguage,
1373 ParentService,
1374 VideoFormat,
1375 AggregateRating,
1376 AreaServed,
1377 Audience,
1378 AvailableChannel,
1379 Award,
1380 Brand,
1381 Broker,
1382 Category,
1383 HasOfferCatalog,
1384 HoursAvailable,
1385 IsRelatedTo,
1386 IsSimilarTo,
1387 Logo,
1388 Offers,
1389 Produces,
1390 Provider,
1391 ProviderMobility,
1392 Review,
1393 ServiceArea,
1394 ServiceAudience,
1395 ServiceOutput,
1396 ServiceType,
1397 Slogan,
1398 TermsOfService,
1399 AdditionalType,
1400 AlternateName,
1401 Description,
1402 DisambiguatingDescription,
1403 Identifier,
1404 Image,
1405 MainEntityOfPage,
1406 Name,
1407 PotentialAction,
1408 SameAs,
1409 SubjectOf,
1410 Url,
1411 Ignore,
1412 }
1413 struct FieldVisitor;
1414 impl<'de> Visitor<'de> for FieldVisitor {
1415 type Value = Field;
1416 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1417 formatter.write_str("field identifier")
1418 }
1419 fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1420 where
1421 E: de::Error,
1422 {
1423 match value {
1424 "area" => Ok(Field::Area),
1425 "broadcastAffiliateOf" => Ok(Field::BroadcastAffiliateOf),
1426 "broadcastDisplayName" => Ok(Field::BroadcastDisplayName),
1427 "broadcastFrequency" => Ok(Field::BroadcastFrequency),
1428 "broadcastTimezone" => Ok(Field::BroadcastTimezone),
1429 "broadcaster" => Ok(Field::Broadcaster),
1430 "callSign" => Ok(Field::CallSign),
1431 "hasBroadcastChannel" => Ok(Field::HasBroadcastChannel),
1432 "inLanguage" => Ok(Field::InLanguage),
1433 "parentService" => Ok(Field::ParentService),
1434 "videoFormat" => Ok(Field::VideoFormat),
1435 "aggregateRating" => Ok(Field::AggregateRating),
1436 "areaServed" => Ok(Field::AreaServed),
1437 "audience" => Ok(Field::Audience),
1438 "availableChannel" => Ok(Field::AvailableChannel),
1439 "award" => Ok(Field::Award),
1440 "brand" => Ok(Field::Brand),
1441 "broker" => Ok(Field::Broker),
1442 "category" => Ok(Field::Category),
1443 "hasOfferCatalog" => Ok(Field::HasOfferCatalog),
1444 "hoursAvailable" => Ok(Field::HoursAvailable),
1445 "isRelatedTo" => Ok(Field::IsRelatedTo),
1446 "isSimilarTo" => Ok(Field::IsSimilarTo),
1447 "logo" => Ok(Field::Logo),
1448 "offers" => Ok(Field::Offers),
1449 "produces" => Ok(Field::Produces),
1450 "provider" => Ok(Field::Provider),
1451 "providerMobility" => Ok(Field::ProviderMobility),
1452 "review" => Ok(Field::Review),
1453 "serviceArea" => Ok(Field::ServiceArea),
1454 "serviceAudience" => Ok(Field::ServiceAudience),
1455 "serviceOutput" => Ok(Field::ServiceOutput),
1456 "serviceType" => Ok(Field::ServiceType),
1457 "slogan" => Ok(Field::Slogan),
1458 "termsOfService" => Ok(Field::TermsOfService),
1459 "additionalType" => Ok(Field::AdditionalType),
1460 "alternateName" => Ok(Field::AlternateName),
1461 "description" => Ok(Field::Description),
1462 "disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1463 "identifier" => Ok(Field::Identifier),
1464 "image" => Ok(Field::Image),
1465 "mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1466 "name" => Ok(Field::Name),
1467 "potentialAction" => Ok(Field::PotentialAction),
1468 "sameAs" => Ok(Field::SameAs),
1469 "subjectOf" => Ok(Field::SubjectOf),
1470 "url" => Ok(Field::Url),
1471 "id" | "type" => Ok(Field::Ignore),
1472 _ => Err(de::Error::unknown_field(value, FIELDS)),
1473 }
1474 }
1475 fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
1476 where
1477 E: de::Error,
1478 {
1479 match value {
1480 b"area" => Ok(Field::Area),
1481 b"broadcastAffiliateOf" => Ok(Field::BroadcastAffiliateOf),
1482 b"broadcastDisplayName" => Ok(Field::BroadcastDisplayName),
1483 b"broadcastFrequency" => Ok(Field::BroadcastFrequency),
1484 b"broadcastTimezone" => Ok(Field::BroadcastTimezone),
1485 b"broadcaster" => Ok(Field::Broadcaster),
1486 b"callSign" => Ok(Field::CallSign),
1487 b"hasBroadcastChannel" => Ok(Field::HasBroadcastChannel),
1488 b"inLanguage" => Ok(Field::InLanguage),
1489 b"parentService" => Ok(Field::ParentService),
1490 b"videoFormat" => Ok(Field::VideoFormat),
1491 b"aggregateRating" => Ok(Field::AggregateRating),
1492 b"areaServed" => Ok(Field::AreaServed),
1493 b"audience" => Ok(Field::Audience),
1494 b"availableChannel" => Ok(Field::AvailableChannel),
1495 b"award" => Ok(Field::Award),
1496 b"brand" => Ok(Field::Brand),
1497 b"broker" => Ok(Field::Broker),
1498 b"category" => Ok(Field::Category),
1499 b"hasOfferCatalog" => Ok(Field::HasOfferCatalog),
1500 b"hoursAvailable" => Ok(Field::HoursAvailable),
1501 b"isRelatedTo" => Ok(Field::IsRelatedTo),
1502 b"isSimilarTo" => Ok(Field::IsSimilarTo),
1503 b"logo" => Ok(Field::Logo),
1504 b"offers" => Ok(Field::Offers),
1505 b"produces" => Ok(Field::Produces),
1506 b"provider" => Ok(Field::Provider),
1507 b"providerMobility" => Ok(Field::ProviderMobility),
1508 b"review" => Ok(Field::Review),
1509 b"serviceArea" => Ok(Field::ServiceArea),
1510 b"serviceAudience" => Ok(Field::ServiceAudience),
1511 b"serviceOutput" => Ok(Field::ServiceOutput),
1512 b"serviceType" => Ok(Field::ServiceType),
1513 b"slogan" => Ok(Field::Slogan),
1514 b"termsOfService" => Ok(Field::TermsOfService),
1515 b"additionalType" => Ok(Field::AdditionalType),
1516 b"alternateName" => Ok(Field::AlternateName),
1517 b"description" => Ok(Field::Description),
1518 b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1519 b"identifier" => Ok(Field::Identifier),
1520 b"image" => Ok(Field::Image),
1521 b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1522 b"name" => Ok(Field::Name),
1523 b"potentialAction" => Ok(Field::PotentialAction),
1524 b"sameAs" => Ok(Field::SameAs),
1525 b"subjectOf" => Ok(Field::SubjectOf),
1526 b"url" => Ok(Field::Url),
1527 b"id" | b"type" => Ok(Field::Ignore),
1528 _ => {
1529 let value = &String::from_utf8_lossy(value);
1530 Err(de::Error::unknown_field(value, FIELDS))
1531 }
1532 }
1533 }
1534 }
1535 impl<'de> Deserialize<'de> for Field {
1536 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1537 where
1538 D: Deserializer<'de>,
1539 {
1540 deserializer.deserialize_identifier(FieldVisitor)
1541 }
1542 }
1543 struct ClassVisitor;
1544 impl<'de> Visitor<'de> for ClassVisitor {
1545 type Value = BroadcastService;
1546 fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1547 formatter.write_str("schema.org schema BroadcastService")
1548 }
1549 fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
1550 where
1551 A: de::MapAccess<'de>,
1552 {
1553 let mut r#area_property = None;
1554 let mut r#broadcast_affiliate_of_property = None;
1555 let mut r#broadcast_display_name_property = None;
1556 let mut r#broadcast_frequency_property = None;
1557 let mut r#broadcast_timezone_property = None;
1558 let mut r#broadcaster_property = None;
1559 let mut r#call_sign_property = None;
1560 let mut r#has_broadcast_channel_property = None;
1561 let mut r#in_language_property = None;
1562 let mut r#parent_service_property = None;
1563 let mut r#video_format_property = None;
1564 let mut r#aggregate_rating_property = None;
1565 let mut r#area_served_property = None;
1566 let mut r#audience_property = None;
1567 let mut r#available_channel_property = None;
1568 let mut r#award_property = None;
1569 let mut r#brand_property = None;
1570 let mut r#broker_property = None;
1571 let mut r#category_property = None;
1572 let mut r#has_offer_catalog_property = None;
1573 let mut r#hours_available_property = None;
1574 let mut r#is_related_to_property = None;
1575 let mut r#is_similar_to_property = None;
1576 let mut r#logo_property = None;
1577 let mut r#offers_property = None;
1578 let mut r#produces_property = None;
1579 let mut r#provider_property = None;
1580 let mut r#provider_mobility_property = None;
1581 let mut r#review_property = None;
1582 let mut r#service_area_property = None;
1583 let mut r#service_audience_property = None;
1584 let mut r#service_output_property = None;
1585 let mut r#service_type_property = None;
1586 let mut r#slogan_property = None;
1587 let mut r#terms_of_service_property = None;
1588 let mut r#additional_type_property = None;
1589 let mut r#alternate_name_property = None;
1590 let mut r#description_property = None;
1591 let mut r#disambiguating_description_property = None;
1592 let mut r#identifier_property = None;
1593 let mut r#image_property = None;
1594 let mut r#main_entity_of_page_property = None;
1595 let mut r#name_property = None;
1596 let mut r#potential_action_property = None;
1597 let mut r#same_as_property = None;
1598 let mut r#subject_of_property = None;
1599 let mut r#url_property = None;
1600 while let Some(key) = map.next_key::<Field>()? {
1601 match key {
1602 Field::Area => {
1603 if r#area_property.is_some() {
1604 return Err(<A::Error as de::Error>::duplicate_field("area"));
1605 }
1606 r#area_property = Some({
1607 struct DeserializeWith(Vec<AreaProperty>);
1608 impl<'de> Deserialize<'de> for DeserializeWith {
1609 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1610 where
1611 D: Deserializer<'de>,
1612 {
1613 Ok(DeserializeWith(serde_with::As::<
1614 serde_with::OneOrMany<serde_with::Same>,
1615 >::deserialize(deserializer)?))
1616 }
1617 }
1618 match map.next_value::<DeserializeWith>() {
1619 Ok(deserialize_with) => deserialize_with.0,
1620 Err(err) => {
1621 return Err(err);
1622 }
1623 }
1624 });
1625 }
1626 Field::BroadcastAffiliateOf => {
1627 if r#broadcast_affiliate_of_property.is_some() {
1628 return Err(<A::Error as de::Error>::duplicate_field(
1629 "broadcastAffiliateOf",
1630 ));
1631 }
1632 r#broadcast_affiliate_of_property = Some({
1633 struct DeserializeWith(Vec<BroadcastAffiliateOfProperty>);
1634 impl<'de> Deserialize<'de> for DeserializeWith {
1635 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1636 where
1637 D: Deserializer<'de>,
1638 {
1639 Ok(DeserializeWith(serde_with::As::<
1640 serde_with::OneOrMany<serde_with::Same>,
1641 >::deserialize(deserializer)?))
1642 }
1643 }
1644 match map.next_value::<DeserializeWith>() {
1645 Ok(deserialize_with) => deserialize_with.0,
1646 Err(err) => {
1647 return Err(err);
1648 }
1649 }
1650 });
1651 }
1652 Field::BroadcastDisplayName => {
1653 if r#broadcast_display_name_property.is_some() {
1654 return Err(<A::Error as de::Error>::duplicate_field(
1655 "broadcastDisplayName",
1656 ));
1657 }
1658 r#broadcast_display_name_property = Some({
1659 struct DeserializeWith(Vec<BroadcastDisplayNameProperty>);
1660 impl<'de> Deserialize<'de> for DeserializeWith {
1661 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1662 where
1663 D: Deserializer<'de>,
1664 {
1665 Ok(DeserializeWith(serde_with::As::<
1666 serde_with::OneOrMany<serde_with::Same>,
1667 >::deserialize(deserializer)?))
1668 }
1669 }
1670 match map.next_value::<DeserializeWith>() {
1671 Ok(deserialize_with) => deserialize_with.0,
1672 Err(err) => {
1673 return Err(err);
1674 }
1675 }
1676 });
1677 }
1678 Field::BroadcastFrequency => {
1679 if r#broadcast_frequency_property.is_some() {
1680 return Err(<A::Error as de::Error>::duplicate_field(
1681 "broadcastFrequency",
1682 ));
1683 }
1684 r#broadcast_frequency_property = Some({
1685 struct DeserializeWith(Vec<BroadcastFrequencyProperty>);
1686 impl<'de> Deserialize<'de> for DeserializeWith {
1687 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1688 where
1689 D: Deserializer<'de>,
1690 {
1691 Ok(DeserializeWith(serde_with::As::<
1692 serde_with::OneOrMany<serde_with::Same>,
1693 >::deserialize(deserializer)?))
1694 }
1695 }
1696 match map.next_value::<DeserializeWith>() {
1697 Ok(deserialize_with) => deserialize_with.0,
1698 Err(err) => {
1699 return Err(err);
1700 }
1701 }
1702 });
1703 }
1704 Field::BroadcastTimezone => {
1705 if r#broadcast_timezone_property.is_some() {
1706 return Err(<A::Error as de::Error>::duplicate_field(
1707 "broadcastTimezone",
1708 ));
1709 }
1710 r#broadcast_timezone_property = Some({
1711 struct DeserializeWith(Vec<BroadcastTimezoneProperty>);
1712 impl<'de> Deserialize<'de> for DeserializeWith {
1713 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1714 where
1715 D: Deserializer<'de>,
1716 {
1717 Ok(DeserializeWith(serde_with::As::<
1718 serde_with::OneOrMany<serde_with::Same>,
1719 >::deserialize(deserializer)?))
1720 }
1721 }
1722 match map.next_value::<DeserializeWith>() {
1723 Ok(deserialize_with) => deserialize_with.0,
1724 Err(err) => {
1725 return Err(err);
1726 }
1727 }
1728 });
1729 }
1730 Field::Broadcaster => {
1731 if r#broadcaster_property.is_some() {
1732 return Err(<A::Error as de::Error>::duplicate_field(
1733 "broadcaster",
1734 ));
1735 }
1736 r#broadcaster_property = Some({
1737 struct DeserializeWith(Vec<BroadcasterProperty>);
1738 impl<'de> Deserialize<'de> for DeserializeWith {
1739 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1740 where
1741 D: Deserializer<'de>,
1742 {
1743 Ok(DeserializeWith(serde_with::As::<
1744 serde_with::OneOrMany<serde_with::Same>,
1745 >::deserialize(deserializer)?))
1746 }
1747 }
1748 match map.next_value::<DeserializeWith>() {
1749 Ok(deserialize_with) => deserialize_with.0,
1750 Err(err) => {
1751 return Err(err);
1752 }
1753 }
1754 });
1755 }
1756 Field::CallSign => {
1757 if r#call_sign_property.is_some() {
1758 return Err(<A::Error as de::Error>::duplicate_field(
1759 "callSign",
1760 ));
1761 }
1762 r#call_sign_property = Some({
1763 struct DeserializeWith(Vec<CallSignProperty>);
1764 impl<'de> Deserialize<'de> for DeserializeWith {
1765 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1766 where
1767 D: Deserializer<'de>,
1768 {
1769 Ok(DeserializeWith(serde_with::As::<
1770 serde_with::OneOrMany<serde_with::Same>,
1771 >::deserialize(deserializer)?))
1772 }
1773 }
1774 match map.next_value::<DeserializeWith>() {
1775 Ok(deserialize_with) => deserialize_with.0,
1776 Err(err) => {
1777 return Err(err);
1778 }
1779 }
1780 });
1781 }
1782 Field::HasBroadcastChannel => {
1783 if r#has_broadcast_channel_property.is_some() {
1784 return Err(<A::Error as de::Error>::duplicate_field(
1785 "hasBroadcastChannel",
1786 ));
1787 }
1788 r#has_broadcast_channel_property = Some({
1789 struct DeserializeWith(Vec<HasBroadcastChannelProperty>);
1790 impl<'de> Deserialize<'de> for DeserializeWith {
1791 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1792 where
1793 D: Deserializer<'de>,
1794 {
1795 Ok(DeserializeWith(serde_with::As::<
1796 serde_with::OneOrMany<serde_with::Same>,
1797 >::deserialize(deserializer)?))
1798 }
1799 }
1800 match map.next_value::<DeserializeWith>() {
1801 Ok(deserialize_with) => deserialize_with.0,
1802 Err(err) => {
1803 return Err(err);
1804 }
1805 }
1806 });
1807 }
1808 Field::InLanguage => {
1809 if r#in_language_property.is_some() {
1810 return Err(<A::Error as de::Error>::duplicate_field(
1811 "inLanguage",
1812 ));
1813 }
1814 r#in_language_property = Some({
1815 struct DeserializeWith(Vec<InLanguageProperty>);
1816 impl<'de> Deserialize<'de> for DeserializeWith {
1817 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1818 where
1819 D: Deserializer<'de>,
1820 {
1821 Ok(DeserializeWith(serde_with::As::<
1822 serde_with::OneOrMany<serde_with::Same>,
1823 >::deserialize(deserializer)?))
1824 }
1825 }
1826 match map.next_value::<DeserializeWith>() {
1827 Ok(deserialize_with) => deserialize_with.0,
1828 Err(err) => {
1829 return Err(err);
1830 }
1831 }
1832 });
1833 }
1834 Field::ParentService => {
1835 if r#parent_service_property.is_some() {
1836 return Err(<A::Error as de::Error>::duplicate_field(
1837 "parentService",
1838 ));
1839 }
1840 r#parent_service_property = Some({
1841 struct DeserializeWith(Vec<ParentServiceProperty>);
1842 impl<'de> Deserialize<'de> for DeserializeWith {
1843 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1844 where
1845 D: Deserializer<'de>,
1846 {
1847 Ok(DeserializeWith(serde_with::As::<
1848 serde_with::OneOrMany<serde_with::Same>,
1849 >::deserialize(deserializer)?))
1850 }
1851 }
1852 match map.next_value::<DeserializeWith>() {
1853 Ok(deserialize_with) => deserialize_with.0,
1854 Err(err) => {
1855 return Err(err);
1856 }
1857 }
1858 });
1859 }
1860 Field::VideoFormat => {
1861 if r#video_format_property.is_some() {
1862 return Err(<A::Error as de::Error>::duplicate_field(
1863 "videoFormat",
1864 ));
1865 }
1866 r#video_format_property = Some({
1867 struct DeserializeWith(Vec<VideoFormatProperty>);
1868 impl<'de> Deserialize<'de> for DeserializeWith {
1869 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1870 where
1871 D: Deserializer<'de>,
1872 {
1873 Ok(DeserializeWith(serde_with::As::<
1874 serde_with::OneOrMany<serde_with::Same>,
1875 >::deserialize(deserializer)?))
1876 }
1877 }
1878 match map.next_value::<DeserializeWith>() {
1879 Ok(deserialize_with) => deserialize_with.0,
1880 Err(err) => {
1881 return Err(err);
1882 }
1883 }
1884 });
1885 }
1886 Field::AggregateRating => {
1887 if r#aggregate_rating_property.is_some() {
1888 return Err(<A::Error as de::Error>::duplicate_field(
1889 "aggregateRating",
1890 ));
1891 }
1892 r#aggregate_rating_property = Some({
1893 struct DeserializeWith(Vec<AggregateRatingProperty>);
1894 impl<'de> Deserialize<'de> for DeserializeWith {
1895 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1896 where
1897 D: Deserializer<'de>,
1898 {
1899 Ok(DeserializeWith(serde_with::As::<
1900 serde_with::OneOrMany<serde_with::Same>,
1901 >::deserialize(deserializer)?))
1902 }
1903 }
1904 match map.next_value::<DeserializeWith>() {
1905 Ok(deserialize_with) => deserialize_with.0,
1906 Err(err) => {
1907 return Err(err);
1908 }
1909 }
1910 });
1911 }
1912 Field::AreaServed => {
1913 if r#area_served_property.is_some() {
1914 return Err(<A::Error as de::Error>::duplicate_field(
1915 "areaServed",
1916 ));
1917 }
1918 r#area_served_property = Some({
1919 struct DeserializeWith(Vec<AreaServedProperty>);
1920 impl<'de> Deserialize<'de> for DeserializeWith {
1921 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1922 where
1923 D: Deserializer<'de>,
1924 {
1925 Ok(DeserializeWith(serde_with::As::<
1926 serde_with::OneOrMany<serde_with::Same>,
1927 >::deserialize(deserializer)?))
1928 }
1929 }
1930 match map.next_value::<DeserializeWith>() {
1931 Ok(deserialize_with) => deserialize_with.0,
1932 Err(err) => {
1933 return Err(err);
1934 }
1935 }
1936 });
1937 }
1938 Field::Audience => {
1939 if r#audience_property.is_some() {
1940 return Err(<A::Error as de::Error>::duplicate_field(
1941 "audience",
1942 ));
1943 }
1944 r#audience_property = Some({
1945 struct DeserializeWith(Vec<AudienceProperty>);
1946 impl<'de> Deserialize<'de> for DeserializeWith {
1947 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1948 where
1949 D: Deserializer<'de>,
1950 {
1951 Ok(DeserializeWith(serde_with::As::<
1952 serde_with::OneOrMany<serde_with::Same>,
1953 >::deserialize(deserializer)?))
1954 }
1955 }
1956 match map.next_value::<DeserializeWith>() {
1957 Ok(deserialize_with) => deserialize_with.0,
1958 Err(err) => {
1959 return Err(err);
1960 }
1961 }
1962 });
1963 }
1964 Field::AvailableChannel => {
1965 if r#available_channel_property.is_some() {
1966 return Err(<A::Error as de::Error>::duplicate_field(
1967 "availableChannel",
1968 ));
1969 }
1970 r#available_channel_property = Some({
1971 struct DeserializeWith(Vec<AvailableChannelProperty>);
1972 impl<'de> Deserialize<'de> for DeserializeWith {
1973 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1974 where
1975 D: Deserializer<'de>,
1976 {
1977 Ok(DeserializeWith(serde_with::As::<
1978 serde_with::OneOrMany<serde_with::Same>,
1979 >::deserialize(deserializer)?))
1980 }
1981 }
1982 match map.next_value::<DeserializeWith>() {
1983 Ok(deserialize_with) => deserialize_with.0,
1984 Err(err) => {
1985 return Err(err);
1986 }
1987 }
1988 });
1989 }
1990 Field::Award => {
1991 if r#award_property.is_some() {
1992 return Err(<A::Error as de::Error>::duplicate_field("award"));
1993 }
1994 r#award_property = Some({
1995 struct DeserializeWith(Vec<AwardProperty>);
1996 impl<'de> Deserialize<'de> for DeserializeWith {
1997 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1998 where
1999 D: Deserializer<'de>,
2000 {
2001 Ok(DeserializeWith(serde_with::As::<
2002 serde_with::OneOrMany<serde_with::Same>,
2003 >::deserialize(deserializer)?))
2004 }
2005 }
2006 match map.next_value::<DeserializeWith>() {
2007 Ok(deserialize_with) => deserialize_with.0,
2008 Err(err) => {
2009 return Err(err);
2010 }
2011 }
2012 });
2013 }
2014 Field::Brand => {
2015 if r#brand_property.is_some() {
2016 return Err(<A::Error as de::Error>::duplicate_field("brand"));
2017 }
2018 r#brand_property = Some({
2019 struct DeserializeWith(Vec<BrandProperty>);
2020 impl<'de> Deserialize<'de> for DeserializeWith {
2021 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2022 where
2023 D: Deserializer<'de>,
2024 {
2025 Ok(DeserializeWith(serde_with::As::<
2026 serde_with::OneOrMany<serde_with::Same>,
2027 >::deserialize(deserializer)?))
2028 }
2029 }
2030 match map.next_value::<DeserializeWith>() {
2031 Ok(deserialize_with) => deserialize_with.0,
2032 Err(err) => {
2033 return Err(err);
2034 }
2035 }
2036 });
2037 }
2038 Field::Broker => {
2039 if r#broker_property.is_some() {
2040 return Err(<A::Error as de::Error>::duplicate_field("broker"));
2041 }
2042 r#broker_property = Some({
2043 struct DeserializeWith(Vec<BrokerProperty>);
2044 impl<'de> Deserialize<'de> for DeserializeWith {
2045 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2046 where
2047 D: Deserializer<'de>,
2048 {
2049 Ok(DeserializeWith(serde_with::As::<
2050 serde_with::OneOrMany<serde_with::Same>,
2051 >::deserialize(deserializer)?))
2052 }
2053 }
2054 match map.next_value::<DeserializeWith>() {
2055 Ok(deserialize_with) => deserialize_with.0,
2056 Err(err) => {
2057 return Err(err);
2058 }
2059 }
2060 });
2061 }
2062 Field::Category => {
2063 if r#category_property.is_some() {
2064 return Err(<A::Error as de::Error>::duplicate_field(
2065 "category",
2066 ));
2067 }
2068 r#category_property = Some({
2069 struct DeserializeWith(Vec<CategoryProperty>);
2070 impl<'de> Deserialize<'de> for DeserializeWith {
2071 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2072 where
2073 D: Deserializer<'de>,
2074 {
2075 Ok(DeserializeWith(serde_with::As::<
2076 serde_with::OneOrMany<serde_with::Same>,
2077 >::deserialize(deserializer)?))
2078 }
2079 }
2080 match map.next_value::<DeserializeWith>() {
2081 Ok(deserialize_with) => deserialize_with.0,
2082 Err(err) => {
2083 return Err(err);
2084 }
2085 }
2086 });
2087 }
2088 Field::HasOfferCatalog => {
2089 if r#has_offer_catalog_property.is_some() {
2090 return Err(<A::Error as de::Error>::duplicate_field(
2091 "hasOfferCatalog",
2092 ));
2093 }
2094 r#has_offer_catalog_property = Some({
2095 struct DeserializeWith(Vec<HasOfferCatalogProperty>);
2096 impl<'de> Deserialize<'de> for DeserializeWith {
2097 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2098 where
2099 D: Deserializer<'de>,
2100 {
2101 Ok(DeserializeWith(serde_with::As::<
2102 serde_with::OneOrMany<serde_with::Same>,
2103 >::deserialize(deserializer)?))
2104 }
2105 }
2106 match map.next_value::<DeserializeWith>() {
2107 Ok(deserialize_with) => deserialize_with.0,
2108 Err(err) => {
2109 return Err(err);
2110 }
2111 }
2112 });
2113 }
2114 Field::HoursAvailable => {
2115 if r#hours_available_property.is_some() {
2116 return Err(<A::Error as de::Error>::duplicate_field(
2117 "hoursAvailable",
2118 ));
2119 }
2120 r#hours_available_property = Some({
2121 struct DeserializeWith(Vec<HoursAvailableProperty>);
2122 impl<'de> Deserialize<'de> for DeserializeWith {
2123 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2124 where
2125 D: Deserializer<'de>,
2126 {
2127 Ok(DeserializeWith(serde_with::As::<
2128 serde_with::OneOrMany<serde_with::Same>,
2129 >::deserialize(deserializer)?))
2130 }
2131 }
2132 match map.next_value::<DeserializeWith>() {
2133 Ok(deserialize_with) => deserialize_with.0,
2134 Err(err) => {
2135 return Err(err);
2136 }
2137 }
2138 });
2139 }
2140 Field::IsRelatedTo => {
2141 if r#is_related_to_property.is_some() {
2142 return Err(<A::Error as de::Error>::duplicate_field(
2143 "isRelatedTo",
2144 ));
2145 }
2146 r#is_related_to_property = Some({
2147 struct DeserializeWith(Vec<IsRelatedToProperty>);
2148 impl<'de> Deserialize<'de> for DeserializeWith {
2149 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2150 where
2151 D: Deserializer<'de>,
2152 {
2153 Ok(DeserializeWith(serde_with::As::<
2154 serde_with::OneOrMany<serde_with::Same>,
2155 >::deserialize(deserializer)?))
2156 }
2157 }
2158 match map.next_value::<DeserializeWith>() {
2159 Ok(deserialize_with) => deserialize_with.0,
2160 Err(err) => {
2161 return Err(err);
2162 }
2163 }
2164 });
2165 }
2166 Field::IsSimilarTo => {
2167 if r#is_similar_to_property.is_some() {
2168 return Err(<A::Error as de::Error>::duplicate_field(
2169 "isSimilarTo",
2170 ));
2171 }
2172 r#is_similar_to_property = Some({
2173 struct DeserializeWith(Vec<IsSimilarToProperty>);
2174 impl<'de> Deserialize<'de> for DeserializeWith {
2175 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2176 where
2177 D: Deserializer<'de>,
2178 {
2179 Ok(DeserializeWith(serde_with::As::<
2180 serde_with::OneOrMany<serde_with::Same>,
2181 >::deserialize(deserializer)?))
2182 }
2183 }
2184 match map.next_value::<DeserializeWith>() {
2185 Ok(deserialize_with) => deserialize_with.0,
2186 Err(err) => {
2187 return Err(err);
2188 }
2189 }
2190 });
2191 }
2192 Field::Logo => {
2193 if r#logo_property.is_some() {
2194 return Err(<A::Error as de::Error>::duplicate_field("logo"));
2195 }
2196 r#logo_property = Some({
2197 struct DeserializeWith(Vec<LogoProperty>);
2198 impl<'de> Deserialize<'de> for DeserializeWith {
2199 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2200 where
2201 D: Deserializer<'de>,
2202 {
2203 Ok(DeserializeWith(serde_with::As::<
2204 serde_with::OneOrMany<serde_with::Same>,
2205 >::deserialize(deserializer)?))
2206 }
2207 }
2208 match map.next_value::<DeserializeWith>() {
2209 Ok(deserialize_with) => deserialize_with.0,
2210 Err(err) => {
2211 return Err(err);
2212 }
2213 }
2214 });
2215 }
2216 Field::Offers => {
2217 if r#offers_property.is_some() {
2218 return Err(<A::Error as de::Error>::duplicate_field("offers"));
2219 }
2220 r#offers_property = Some({
2221 struct DeserializeWith(Vec<OffersProperty>);
2222 impl<'de> Deserialize<'de> for DeserializeWith {
2223 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2224 where
2225 D: Deserializer<'de>,
2226 {
2227 Ok(DeserializeWith(serde_with::As::<
2228 serde_with::OneOrMany<serde_with::Same>,
2229 >::deserialize(deserializer)?))
2230 }
2231 }
2232 match map.next_value::<DeserializeWith>() {
2233 Ok(deserialize_with) => deserialize_with.0,
2234 Err(err) => {
2235 return Err(err);
2236 }
2237 }
2238 });
2239 }
2240 Field::Produces => {
2241 if r#produces_property.is_some() {
2242 return Err(<A::Error as de::Error>::duplicate_field(
2243 "produces",
2244 ));
2245 }
2246 r#produces_property = Some({
2247 struct DeserializeWith(Vec<ProducesProperty>);
2248 impl<'de> Deserialize<'de> for DeserializeWith {
2249 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2250 where
2251 D: Deserializer<'de>,
2252 {
2253 Ok(DeserializeWith(serde_with::As::<
2254 serde_with::OneOrMany<serde_with::Same>,
2255 >::deserialize(deserializer)?))
2256 }
2257 }
2258 match map.next_value::<DeserializeWith>() {
2259 Ok(deserialize_with) => deserialize_with.0,
2260 Err(err) => {
2261 return Err(err);
2262 }
2263 }
2264 });
2265 }
2266 Field::Provider => {
2267 if r#provider_property.is_some() {
2268 return Err(<A::Error as de::Error>::duplicate_field(
2269 "provider",
2270 ));
2271 }
2272 r#provider_property = Some({
2273 struct DeserializeWith(Vec<ProviderProperty>);
2274 impl<'de> Deserialize<'de> for DeserializeWith {
2275 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2276 where
2277 D: Deserializer<'de>,
2278 {
2279 Ok(DeserializeWith(serde_with::As::<
2280 serde_with::OneOrMany<serde_with::Same>,
2281 >::deserialize(deserializer)?))
2282 }
2283 }
2284 match map.next_value::<DeserializeWith>() {
2285 Ok(deserialize_with) => deserialize_with.0,
2286 Err(err) => {
2287 return Err(err);
2288 }
2289 }
2290 });
2291 }
2292 Field::ProviderMobility => {
2293 if r#provider_mobility_property.is_some() {
2294 return Err(<A::Error as de::Error>::duplicate_field(
2295 "providerMobility",
2296 ));
2297 }
2298 r#provider_mobility_property = Some({
2299 struct DeserializeWith(Vec<ProviderMobilityProperty>);
2300 impl<'de> Deserialize<'de> for DeserializeWith {
2301 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2302 where
2303 D: Deserializer<'de>,
2304 {
2305 Ok(DeserializeWith(serde_with::As::<
2306 serde_with::OneOrMany<serde_with::Same>,
2307 >::deserialize(deserializer)?))
2308 }
2309 }
2310 match map.next_value::<DeserializeWith>() {
2311 Ok(deserialize_with) => deserialize_with.0,
2312 Err(err) => {
2313 return Err(err);
2314 }
2315 }
2316 });
2317 }
2318 Field::Review => {
2319 if r#review_property.is_some() {
2320 return Err(<A::Error as de::Error>::duplicate_field("review"));
2321 }
2322 r#review_property = Some({
2323 struct DeserializeWith(Vec<ReviewProperty>);
2324 impl<'de> Deserialize<'de> for DeserializeWith {
2325 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2326 where
2327 D: Deserializer<'de>,
2328 {
2329 Ok(DeserializeWith(serde_with::As::<
2330 serde_with::OneOrMany<serde_with::Same>,
2331 >::deserialize(deserializer)?))
2332 }
2333 }
2334 match map.next_value::<DeserializeWith>() {
2335 Ok(deserialize_with) => deserialize_with.0,
2336 Err(err) => {
2337 return Err(err);
2338 }
2339 }
2340 });
2341 }
2342 Field::ServiceArea => {
2343 if r#service_area_property.is_some() {
2344 return Err(<A::Error as de::Error>::duplicate_field(
2345 "serviceArea",
2346 ));
2347 }
2348 r#service_area_property = Some({
2349 struct DeserializeWith(Vec<ServiceAreaProperty>);
2350 impl<'de> Deserialize<'de> for DeserializeWith {
2351 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2352 where
2353 D: Deserializer<'de>,
2354 {
2355 Ok(DeserializeWith(serde_with::As::<
2356 serde_with::OneOrMany<serde_with::Same>,
2357 >::deserialize(deserializer)?))
2358 }
2359 }
2360 match map.next_value::<DeserializeWith>() {
2361 Ok(deserialize_with) => deserialize_with.0,
2362 Err(err) => {
2363 return Err(err);
2364 }
2365 }
2366 });
2367 }
2368 Field::ServiceAudience => {
2369 if r#service_audience_property.is_some() {
2370 return Err(<A::Error as de::Error>::duplicate_field(
2371 "serviceAudience",
2372 ));
2373 }
2374 r#service_audience_property = Some({
2375 struct DeserializeWith(Vec<ServiceAudienceProperty>);
2376 impl<'de> Deserialize<'de> for DeserializeWith {
2377 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2378 where
2379 D: Deserializer<'de>,
2380 {
2381 Ok(DeserializeWith(serde_with::As::<
2382 serde_with::OneOrMany<serde_with::Same>,
2383 >::deserialize(deserializer)?))
2384 }
2385 }
2386 match map.next_value::<DeserializeWith>() {
2387 Ok(deserialize_with) => deserialize_with.0,
2388 Err(err) => {
2389 return Err(err);
2390 }
2391 }
2392 });
2393 }
2394 Field::ServiceOutput => {
2395 if r#service_output_property.is_some() {
2396 return Err(<A::Error as de::Error>::duplicate_field(
2397 "serviceOutput",
2398 ));
2399 }
2400 r#service_output_property = Some({
2401 struct DeserializeWith(Vec<ServiceOutputProperty>);
2402 impl<'de> Deserialize<'de> for DeserializeWith {
2403 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2404 where
2405 D: Deserializer<'de>,
2406 {
2407 Ok(DeserializeWith(serde_with::As::<
2408 serde_with::OneOrMany<serde_with::Same>,
2409 >::deserialize(deserializer)?))
2410 }
2411 }
2412 match map.next_value::<DeserializeWith>() {
2413 Ok(deserialize_with) => deserialize_with.0,
2414 Err(err) => {
2415 return Err(err);
2416 }
2417 }
2418 });
2419 }
2420 Field::ServiceType => {
2421 if r#service_type_property.is_some() {
2422 return Err(<A::Error as de::Error>::duplicate_field(
2423 "serviceType",
2424 ));
2425 }
2426 r#service_type_property = Some({
2427 struct DeserializeWith(Vec<ServiceTypeProperty>);
2428 impl<'de> Deserialize<'de> for DeserializeWith {
2429 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2430 where
2431 D: Deserializer<'de>,
2432 {
2433 Ok(DeserializeWith(serde_with::As::<
2434 serde_with::OneOrMany<serde_with::Same>,
2435 >::deserialize(deserializer)?))
2436 }
2437 }
2438 match map.next_value::<DeserializeWith>() {
2439 Ok(deserialize_with) => deserialize_with.0,
2440 Err(err) => {
2441 return Err(err);
2442 }
2443 }
2444 });
2445 }
2446 Field::Slogan => {
2447 if r#slogan_property.is_some() {
2448 return Err(<A::Error as de::Error>::duplicate_field("slogan"));
2449 }
2450 r#slogan_property = Some({
2451 struct DeserializeWith(Vec<SloganProperty>);
2452 impl<'de> Deserialize<'de> for DeserializeWith {
2453 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2454 where
2455 D: Deserializer<'de>,
2456 {
2457 Ok(DeserializeWith(serde_with::As::<
2458 serde_with::OneOrMany<serde_with::Same>,
2459 >::deserialize(deserializer)?))
2460 }
2461 }
2462 match map.next_value::<DeserializeWith>() {
2463 Ok(deserialize_with) => deserialize_with.0,
2464 Err(err) => {
2465 return Err(err);
2466 }
2467 }
2468 });
2469 }
2470 Field::TermsOfService => {
2471 if r#terms_of_service_property.is_some() {
2472 return Err(<A::Error as de::Error>::duplicate_field(
2473 "termsOfService",
2474 ));
2475 }
2476 r#terms_of_service_property = Some({
2477 struct DeserializeWith(Vec<TermsOfServiceProperty>);
2478 impl<'de> Deserialize<'de> for DeserializeWith {
2479 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2480 where
2481 D: Deserializer<'de>,
2482 {
2483 Ok(DeserializeWith(serde_with::As::<
2484 serde_with::OneOrMany<serde_with::Same>,
2485 >::deserialize(deserializer)?))
2486 }
2487 }
2488 match map.next_value::<DeserializeWith>() {
2489 Ok(deserialize_with) => deserialize_with.0,
2490 Err(err) => {
2491 return Err(err);
2492 }
2493 }
2494 });
2495 }
2496 Field::AdditionalType => {
2497 if r#additional_type_property.is_some() {
2498 return Err(<A::Error as de::Error>::duplicate_field(
2499 "additionalType",
2500 ));
2501 }
2502 r#additional_type_property = Some({
2503 struct DeserializeWith(Vec<AdditionalTypeProperty>);
2504 impl<'de> Deserialize<'de> for DeserializeWith {
2505 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2506 where
2507 D: Deserializer<'de>,
2508 {
2509 Ok(DeserializeWith(serde_with::As::<
2510 serde_with::OneOrMany<serde_with::Same>,
2511 >::deserialize(deserializer)?))
2512 }
2513 }
2514 match map.next_value::<DeserializeWith>() {
2515 Ok(deserialize_with) => deserialize_with.0,
2516 Err(err) => {
2517 return Err(err);
2518 }
2519 }
2520 });
2521 }
2522 Field::AlternateName => {
2523 if r#alternate_name_property.is_some() {
2524 return Err(<A::Error as de::Error>::duplicate_field(
2525 "alternateName",
2526 ));
2527 }
2528 r#alternate_name_property = Some({
2529 struct DeserializeWith(Vec<AlternateNameProperty>);
2530 impl<'de> Deserialize<'de> for DeserializeWith {
2531 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2532 where
2533 D: Deserializer<'de>,
2534 {
2535 Ok(DeserializeWith(serde_with::As::<
2536 serde_with::OneOrMany<serde_with::Same>,
2537 >::deserialize(deserializer)?))
2538 }
2539 }
2540 match map.next_value::<DeserializeWith>() {
2541 Ok(deserialize_with) => deserialize_with.0,
2542 Err(err) => {
2543 return Err(err);
2544 }
2545 }
2546 });
2547 }
2548 Field::Description => {
2549 if r#description_property.is_some() {
2550 return Err(<A::Error as de::Error>::duplicate_field(
2551 "description",
2552 ));
2553 }
2554 r#description_property = Some({
2555 struct DeserializeWith(Vec<DescriptionProperty>);
2556 impl<'de> Deserialize<'de> for DeserializeWith {
2557 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2558 where
2559 D: Deserializer<'de>,
2560 {
2561 Ok(DeserializeWith(serde_with::As::<
2562 serde_with::OneOrMany<serde_with::Same>,
2563 >::deserialize(deserializer)?))
2564 }
2565 }
2566 match map.next_value::<DeserializeWith>() {
2567 Ok(deserialize_with) => deserialize_with.0,
2568 Err(err) => {
2569 return Err(err);
2570 }
2571 }
2572 });
2573 }
2574 Field::DisambiguatingDescription => {
2575 if r#disambiguating_description_property.is_some() {
2576 return Err(<A::Error as de::Error>::duplicate_field(
2577 "disambiguatingDescription",
2578 ));
2579 }
2580 r#disambiguating_description_property = Some({
2581 struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
2582 impl<'de> Deserialize<'de> for DeserializeWith {
2583 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2584 where
2585 D: Deserializer<'de>,
2586 {
2587 Ok(DeserializeWith(serde_with::As::<
2588 serde_with::OneOrMany<serde_with::Same>,
2589 >::deserialize(deserializer)?))
2590 }
2591 }
2592 match map.next_value::<DeserializeWith>() {
2593 Ok(deserialize_with) => deserialize_with.0,
2594 Err(err) => {
2595 return Err(err);
2596 }
2597 }
2598 });
2599 }
2600 Field::Identifier => {
2601 if r#identifier_property.is_some() {
2602 return Err(<A::Error as de::Error>::duplicate_field(
2603 "identifier",
2604 ));
2605 }
2606 r#identifier_property = Some({
2607 struct DeserializeWith(Vec<IdentifierProperty>);
2608 impl<'de> Deserialize<'de> for DeserializeWith {
2609 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2610 where
2611 D: Deserializer<'de>,
2612 {
2613 Ok(DeserializeWith(serde_with::As::<
2614 serde_with::OneOrMany<serde_with::Same>,
2615 >::deserialize(deserializer)?))
2616 }
2617 }
2618 match map.next_value::<DeserializeWith>() {
2619 Ok(deserialize_with) => deserialize_with.0,
2620 Err(err) => {
2621 return Err(err);
2622 }
2623 }
2624 });
2625 }
2626 Field::Image => {
2627 if r#image_property.is_some() {
2628 return Err(<A::Error as de::Error>::duplicate_field("image"));
2629 }
2630 r#image_property = Some({
2631 struct DeserializeWith(Vec<ImageProperty>);
2632 impl<'de> Deserialize<'de> for DeserializeWith {
2633 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2634 where
2635 D: Deserializer<'de>,
2636 {
2637 Ok(DeserializeWith(serde_with::As::<
2638 serde_with::OneOrMany<serde_with::Same>,
2639 >::deserialize(deserializer)?))
2640 }
2641 }
2642 match map.next_value::<DeserializeWith>() {
2643 Ok(deserialize_with) => deserialize_with.0,
2644 Err(err) => {
2645 return Err(err);
2646 }
2647 }
2648 });
2649 }
2650 Field::MainEntityOfPage => {
2651 if r#main_entity_of_page_property.is_some() {
2652 return Err(<A::Error as de::Error>::duplicate_field(
2653 "mainEntityOfPage",
2654 ));
2655 }
2656 r#main_entity_of_page_property = Some({
2657 struct DeserializeWith(Vec<MainEntityOfPageProperty>);
2658 impl<'de> Deserialize<'de> for DeserializeWith {
2659 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2660 where
2661 D: Deserializer<'de>,
2662 {
2663 Ok(DeserializeWith(serde_with::As::<
2664 serde_with::OneOrMany<serde_with::Same>,
2665 >::deserialize(deserializer)?))
2666 }
2667 }
2668 match map.next_value::<DeserializeWith>() {
2669 Ok(deserialize_with) => deserialize_with.0,
2670 Err(err) => {
2671 return Err(err);
2672 }
2673 }
2674 });
2675 }
2676 Field::Name => {
2677 if r#name_property.is_some() {
2678 return Err(<A::Error as de::Error>::duplicate_field("name"));
2679 }
2680 r#name_property = Some({
2681 struct DeserializeWith(Vec<NameProperty>);
2682 impl<'de> Deserialize<'de> for DeserializeWith {
2683 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2684 where
2685 D: Deserializer<'de>,
2686 {
2687 Ok(DeserializeWith(serde_with::As::<
2688 serde_with::OneOrMany<serde_with::Same>,
2689 >::deserialize(deserializer)?))
2690 }
2691 }
2692 match map.next_value::<DeserializeWith>() {
2693 Ok(deserialize_with) => deserialize_with.0,
2694 Err(err) => {
2695 return Err(err);
2696 }
2697 }
2698 });
2699 }
2700 Field::PotentialAction => {
2701 if r#potential_action_property.is_some() {
2702 return Err(<A::Error as de::Error>::duplicate_field(
2703 "potentialAction",
2704 ));
2705 }
2706 r#potential_action_property = Some({
2707 struct DeserializeWith(Vec<PotentialActionProperty>);
2708 impl<'de> Deserialize<'de> for DeserializeWith {
2709 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2710 where
2711 D: Deserializer<'de>,
2712 {
2713 Ok(DeserializeWith(serde_with::As::<
2714 serde_with::OneOrMany<serde_with::Same>,
2715 >::deserialize(deserializer)?))
2716 }
2717 }
2718 match map.next_value::<DeserializeWith>() {
2719 Ok(deserialize_with) => deserialize_with.0,
2720 Err(err) => {
2721 return Err(err);
2722 }
2723 }
2724 });
2725 }
2726 Field::SameAs => {
2727 if r#same_as_property.is_some() {
2728 return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
2729 }
2730 r#same_as_property = Some({
2731 struct DeserializeWith(Vec<SameAsProperty>);
2732 impl<'de> Deserialize<'de> for DeserializeWith {
2733 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2734 where
2735 D: Deserializer<'de>,
2736 {
2737 Ok(DeserializeWith(serde_with::As::<
2738 serde_with::OneOrMany<serde_with::Same>,
2739 >::deserialize(deserializer)?))
2740 }
2741 }
2742 match map.next_value::<DeserializeWith>() {
2743 Ok(deserialize_with) => deserialize_with.0,
2744 Err(err) => {
2745 return Err(err);
2746 }
2747 }
2748 });
2749 }
2750 Field::SubjectOf => {
2751 if r#subject_of_property.is_some() {
2752 return Err(<A::Error as de::Error>::duplicate_field(
2753 "subjectOf",
2754 ));
2755 }
2756 r#subject_of_property = Some({
2757 struct DeserializeWith(Vec<SubjectOfProperty>);
2758 impl<'de> Deserialize<'de> for DeserializeWith {
2759 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2760 where
2761 D: Deserializer<'de>,
2762 {
2763 Ok(DeserializeWith(serde_with::As::<
2764 serde_with::OneOrMany<serde_with::Same>,
2765 >::deserialize(deserializer)?))
2766 }
2767 }
2768 match map.next_value::<DeserializeWith>() {
2769 Ok(deserialize_with) => deserialize_with.0,
2770 Err(err) => {
2771 return Err(err);
2772 }
2773 }
2774 });
2775 }
2776 Field::Url => {
2777 if r#url_property.is_some() {
2778 return Err(<A::Error as de::Error>::duplicate_field("url"));
2779 }
2780 r#url_property = Some({
2781 struct DeserializeWith(Vec<UrlProperty>);
2782 impl<'de> Deserialize<'de> for DeserializeWith {
2783 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2784 where
2785 D: Deserializer<'de>,
2786 {
2787 Ok(DeserializeWith(serde_with::As::<
2788 serde_with::OneOrMany<serde_with::Same>,
2789 >::deserialize(deserializer)?))
2790 }
2791 }
2792 match map.next_value::<DeserializeWith>() {
2793 Ok(deserialize_with) => deserialize_with.0,
2794 Err(err) => {
2795 return Err(err);
2796 }
2797 }
2798 });
2799 }
2800 Field::Ignore => {
2801 let _ = map.next_value::<de::IgnoredAny>()?;
2802 }
2803 }
2804 }
2805 Ok(BroadcastService {
2806 r#area: r#area_property.unwrap_or_default(),
2807 r#broadcast_affiliate_of: r#broadcast_affiliate_of_property
2808 .unwrap_or_default(),
2809 r#broadcast_display_name: r#broadcast_display_name_property
2810 .unwrap_or_default(),
2811 r#broadcast_frequency: r#broadcast_frequency_property.unwrap_or_default(),
2812 r#broadcast_timezone: r#broadcast_timezone_property.unwrap_or_default(),
2813 r#broadcaster: r#broadcaster_property.unwrap_or_default(),
2814 r#call_sign: r#call_sign_property.unwrap_or_default(),
2815 r#has_broadcast_channel: r#has_broadcast_channel_property
2816 .unwrap_or_default(),
2817 r#in_language: r#in_language_property.unwrap_or_default(),
2818 r#parent_service: r#parent_service_property.unwrap_or_default(),
2819 r#video_format: r#video_format_property.unwrap_or_default(),
2820 r#aggregate_rating: r#aggregate_rating_property.unwrap_or_default(),
2821 r#area_served: r#area_served_property.unwrap_or_default(),
2822 r#audience: r#audience_property.unwrap_or_default(),
2823 r#available_channel: r#available_channel_property.unwrap_or_default(),
2824 r#award: r#award_property.unwrap_or_default(),
2825 r#brand: r#brand_property.unwrap_or_default(),
2826 r#broker: r#broker_property.unwrap_or_default(),
2827 r#category: r#category_property.unwrap_or_default(),
2828 r#has_offer_catalog: r#has_offer_catalog_property.unwrap_or_default(),
2829 r#hours_available: r#hours_available_property.unwrap_or_default(),
2830 r#is_related_to: r#is_related_to_property.unwrap_or_default(),
2831 r#is_similar_to: r#is_similar_to_property.unwrap_or_default(),
2832 r#logo: r#logo_property.unwrap_or_default(),
2833 r#offers: r#offers_property.unwrap_or_default(),
2834 r#produces: r#produces_property.unwrap_or_default(),
2835 r#provider: r#provider_property.unwrap_or_default(),
2836 r#provider_mobility: r#provider_mobility_property.unwrap_or_default(),
2837 r#review: r#review_property.unwrap_or_default(),
2838 r#service_area: r#service_area_property.unwrap_or_default(),
2839 r#service_audience: r#service_audience_property.unwrap_or_default(),
2840 r#service_output: r#service_output_property.unwrap_or_default(),
2841 r#service_type: r#service_type_property.unwrap_or_default(),
2842 r#slogan: r#slogan_property.unwrap_or_default(),
2843 r#terms_of_service: r#terms_of_service_property.unwrap_or_default(),
2844 r#additional_type: r#additional_type_property.unwrap_or_default(),
2845 r#alternate_name: r#alternate_name_property.unwrap_or_default(),
2846 r#description: r#description_property.unwrap_or_default(),
2847 r#disambiguating_description: r#disambiguating_description_property
2848 .unwrap_or_default(),
2849 r#identifier: r#identifier_property.unwrap_or_default(),
2850 r#image: r#image_property.unwrap_or_default(),
2851 r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
2852 r#name: r#name_property.unwrap_or_default(),
2853 r#potential_action: r#potential_action_property.unwrap_or_default(),
2854 r#same_as: r#same_as_property.unwrap_or_default(),
2855 r#subject_of: r#subject_of_property.unwrap_or_default(),
2856 r#url: r#url_property.unwrap_or_default(),
2857 })
2858 }
2859 }
2860 const FIELDS: &[&str] = &[
2861 "area",
2862 "broadcastAffiliateOf",
2863 "broadcastDisplayName",
2864 "broadcastFrequency",
2865 "broadcastTimezone",
2866 "broadcaster",
2867 "callSign",
2868 "hasBroadcastChannel",
2869 "inLanguage",
2870 "parentService",
2871 "videoFormat",
2872 "aggregateRating",
2873 "areaServed",
2874 "audience",
2875 "availableChannel",
2876 "award",
2877 "brand",
2878 "broker",
2879 "category",
2880 "hasOfferCatalog",
2881 "hoursAvailable",
2882 "isRelatedTo",
2883 "isSimilarTo",
2884 "logo",
2885 "offers",
2886 "produces",
2887 "provider",
2888 "providerMobility",
2889 "review",
2890 "serviceArea",
2891 "serviceAudience",
2892 "serviceOutput",
2893 "serviceType",
2894 "slogan",
2895 "termsOfService",
2896 "additionalType",
2897 "alternateName",
2898 "description",
2899 "disambiguatingDescription",
2900 "identifier",
2901 "image",
2902 "mainEntityOfPage",
2903 "name",
2904 "potentialAction",
2905 "sameAs",
2906 "subjectOf",
2907 "url",
2908 ];
2909 deserializer.deserialize_struct("BroadcastService", FIELDS, ClassVisitor)
2910 }
2911 }
2912}