schema_org_types/schemas/classes/
broadcast_service.rs

1use super::*;
2/// <https://schema.org/BroadcastService>
3#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct BroadcastService {
6	/// <https://schema.org/area>
7	#[deprecated = "This schema is superseded by <https://schema.org/serviceArea>."]
8	pub r#area: Vec<AreaProperty>,
9	/// <https://schema.org/broadcastAffiliateOf>
10	pub r#broadcast_affiliate_of: Vec<BroadcastAffiliateOfProperty>,
11	/// <https://schema.org/broadcastDisplayName>
12	pub r#broadcast_display_name: Vec<BroadcastDisplayNameProperty>,
13	/// <https://schema.org/broadcastFrequency>
14	pub r#broadcast_frequency: Vec<BroadcastFrequencyProperty>,
15	/// <https://schema.org/broadcastTimezone>
16	pub r#broadcast_timezone: Vec<BroadcastTimezoneProperty>,
17	/// <https://schema.org/broadcaster>
18	pub r#broadcaster: Vec<BroadcasterProperty>,
19	/// <https://schema.org/callSign>
20	pub r#call_sign: Vec<CallSignProperty>,
21	/// <https://schema.org/hasBroadcastChannel>
22	pub r#has_broadcast_channel: Vec<HasBroadcastChannelProperty>,
23	/// <https://schema.org/inLanguage>
24	pub r#in_language: Vec<InLanguageProperty>,
25	/// <https://schema.org/parentService>
26	pub r#parent_service: Vec<ParentServiceProperty>,
27	/// <https://schema.org/videoFormat>
28	pub r#video_format: Vec<VideoFormatProperty>,
29	/// <https://schema.org/aggregateRating>
30	pub r#aggregate_rating: Vec<AggregateRatingProperty>,
31	/// <https://schema.org/areaServed>
32	pub r#area_served: Vec<AreaServedProperty>,
33	/// <https://schema.org/audience>
34	pub r#audience: Vec<AudienceProperty>,
35	/// <https://schema.org/availableChannel>
36	pub r#available_channel: Vec<AvailableChannelProperty>,
37	/// <https://schema.org/award>
38	pub r#award: Vec<AwardProperty>,
39	/// <https://schema.org/brand>
40	pub r#brand: Vec<BrandProperty>,
41	/// <https://schema.org/broker>
42	pub r#broker: Vec<BrokerProperty>,
43	/// <https://schema.org/category>
44	pub r#category: Vec<CategoryProperty>,
45	/// <https://schema.org/hasOfferCatalog>
46	pub r#has_offer_catalog: Vec<HasOfferCatalogProperty>,
47	/// <https://schema.org/hoursAvailable>
48	pub r#hours_available: Vec<HoursAvailableProperty>,
49	/// <https://schema.org/isRelatedTo>
50	pub r#is_related_to: Vec<IsRelatedToProperty>,
51	/// <https://schema.org/isSimilarTo>
52	pub r#is_similar_to: Vec<IsSimilarToProperty>,
53	/// <https://schema.org/logo>
54	pub r#logo: Vec<LogoProperty>,
55	/// <https://schema.org/offers>
56	pub r#offers: Vec<OffersProperty>,
57	/// <https://schema.org/produces>
58	#[deprecated = "This schema is superseded by <https://schema.org/serviceOutput>."]
59	pub r#produces: Vec<ProducesProperty>,
60	/// <https://schema.org/provider>
61	pub r#provider: Vec<ProviderProperty>,
62	/// <https://schema.org/providerMobility>
63	pub r#provider_mobility: Vec<ProviderMobilityProperty>,
64	/// <https://schema.org/review>
65	pub r#review: Vec<ReviewProperty>,
66	/// <https://schema.org/serviceArea>
67	#[deprecated = "This schema is superseded by <https://schema.org/areaServed>."]
68	pub r#service_area: Vec<ServiceAreaProperty>,
69	/// <https://schema.org/serviceAudience>
70	#[deprecated = "This schema is superseded by <https://schema.org/audience>."]
71	pub r#service_audience: Vec<ServiceAudienceProperty>,
72	/// <https://schema.org/serviceOutput>
73	pub r#service_output: Vec<ServiceOutputProperty>,
74	/// <https://schema.org/serviceType>
75	pub r#service_type: Vec<ServiceTypeProperty>,
76	/// <https://schema.org/slogan>
77	pub r#slogan: Vec<SloganProperty>,
78	/// <https://schema.org/termsOfService>
79	pub r#terms_of_service: Vec<TermsOfServiceProperty>,
80	/// <https://schema.org/additionalType>
81	pub r#additional_type: Vec<AdditionalTypeProperty>,
82	/// <https://schema.org/alternateName>
83	pub r#alternate_name: Vec<AlternateNameProperty>,
84	/// <https://schema.org/description>
85	pub r#description: Vec<DescriptionProperty>,
86	/// <https://schema.org/disambiguatingDescription>
87	pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
88	/// <https://schema.org/identifier>
89	pub r#identifier: Vec<IdentifierProperty>,
90	/// <https://schema.org/image>
91	pub r#image: Vec<ImageProperty>,
92	/// <https://schema.org/mainEntityOfPage>
93	pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
94	/// <https://schema.org/name>
95	pub r#name: Vec<NameProperty>,
96	/// <https://schema.org/potentialAction>
97	pub r#potential_action: Vec<PotentialActionProperty>,
98	/// <https://schema.org/sameAs>
99	pub r#same_as: Vec<SameAsProperty>,
100	/// <https://schema.org/subjectOf>
101	pub r#subject_of: Vec<SubjectOfProperty>,
102	/// <https://schema.org/url>
103	pub r#url: Vec<UrlProperty>,
104}
105/// This trait is for properties from <https://schema.org/BroadcastService>.
106pub trait BroadcastServiceTrait {
107	/// Get <https://schema.org/area> from [`Self`] as borrowed slice.
108	#[deprecated = "This schema is superseded by <https://schema.org/serviceArea>."]
109	fn get_area(&self) -> &[AreaProperty];
110	/// Take <https://schema.org/area> from [`Self`] as owned vector.
111	#[deprecated = "This schema is superseded by <https://schema.org/serviceArea>."]
112	fn take_area(&mut self) -> Vec<AreaProperty>;
113	/// Get <https://schema.org/broadcastAffiliateOf> from [`Self`] as borrowed slice.
114	fn get_broadcast_affiliate_of(&self) -> &[BroadcastAffiliateOfProperty];
115	/// Take <https://schema.org/broadcastAffiliateOf> from [`Self`] as owned vector.
116	fn take_broadcast_affiliate_of(&mut self) -> Vec<BroadcastAffiliateOfProperty>;
117	/// Get <https://schema.org/broadcastDisplayName> from [`Self`] as borrowed slice.
118	fn get_broadcast_display_name(&self) -> &[BroadcastDisplayNameProperty];
119	/// Take <https://schema.org/broadcastDisplayName> from [`Self`] as owned vector.
120	fn take_broadcast_display_name(&mut self) -> Vec<BroadcastDisplayNameProperty>;
121	/// Get <https://schema.org/broadcastFrequency> from [`Self`] as borrowed slice.
122	fn get_broadcast_frequency(&self) -> &[BroadcastFrequencyProperty];
123	/// Take <https://schema.org/broadcastFrequency> from [`Self`] as owned vector.
124	fn take_broadcast_frequency(&mut self) -> Vec<BroadcastFrequencyProperty>;
125	/// Get <https://schema.org/broadcastTimezone> from [`Self`] as borrowed slice.
126	fn get_broadcast_timezone(&self) -> &[BroadcastTimezoneProperty];
127	/// Take <https://schema.org/broadcastTimezone> from [`Self`] as owned vector.
128	fn take_broadcast_timezone(&mut self) -> Vec<BroadcastTimezoneProperty>;
129	/// Get <https://schema.org/broadcaster> from [`Self`] as borrowed slice.
130	fn get_broadcaster(&self) -> &[BroadcasterProperty];
131	/// Take <https://schema.org/broadcaster> from [`Self`] as owned vector.
132	fn take_broadcaster(&mut self) -> Vec<BroadcasterProperty>;
133	/// Get <https://schema.org/callSign> from [`Self`] as borrowed slice.
134	fn get_call_sign(&self) -> &[CallSignProperty];
135	/// Take <https://schema.org/callSign> from [`Self`] as owned vector.
136	fn take_call_sign(&mut self) -> Vec<CallSignProperty>;
137	/// Get <https://schema.org/hasBroadcastChannel> from [`Self`] as borrowed slice.
138	fn get_has_broadcast_channel(&self) -> &[HasBroadcastChannelProperty];
139	/// Take <https://schema.org/hasBroadcastChannel> from [`Self`] as owned vector.
140	fn take_has_broadcast_channel(&mut self) -> Vec<HasBroadcastChannelProperty>;
141	/// Get <https://schema.org/inLanguage> from [`Self`] as borrowed slice.
142	fn get_in_language(&self) -> &[InLanguageProperty];
143	/// Take <https://schema.org/inLanguage> from [`Self`] as owned vector.
144	fn take_in_language(&mut self) -> Vec<InLanguageProperty>;
145	/// Get <https://schema.org/parentService> from [`Self`] as borrowed slice.
146	fn get_parent_service(&self) -> &[ParentServiceProperty];
147	/// Take <https://schema.org/parentService> from [`Self`] as owned vector.
148	fn take_parent_service(&mut self) -> Vec<ParentServiceProperty>;
149	/// Get <https://schema.org/videoFormat> from [`Self`] as borrowed slice.
150	fn get_video_format(&self) -> &[VideoFormatProperty];
151	/// Take <https://schema.org/videoFormat> from [`Self`] as owned vector.
152	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}