schema_org_types/schemas/classes/
brokerage_account.rs

1use super::*;
2/// <https://schema.org/BrokerageAccount>
3#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct BrokerageAccount {
6	/// <https://schema.org/annualPercentageRate>
7	pub r#annual_percentage_rate: Vec<AnnualPercentageRateProperty>,
8	/// <https://schema.org/feesAndCommissionsSpecification>
9	pub r#fees_and_commissions_specification: Vec<FeesAndCommissionsSpecificationProperty>,
10	/// <https://schema.org/interestRate>
11	pub r#interest_rate: Vec<InterestRateProperty>,
12	/// <https://schema.org/amount>
13	pub r#amount: Vec<AmountProperty>,
14	/// <https://schema.org/aggregateRating>
15	pub r#aggregate_rating: Vec<AggregateRatingProperty>,
16	/// <https://schema.org/areaServed>
17	pub r#area_served: Vec<AreaServedProperty>,
18	/// <https://schema.org/audience>
19	pub r#audience: Vec<AudienceProperty>,
20	/// <https://schema.org/availableChannel>
21	pub r#available_channel: Vec<AvailableChannelProperty>,
22	/// <https://schema.org/award>
23	pub r#award: Vec<AwardProperty>,
24	/// <https://schema.org/brand>
25	pub r#brand: Vec<BrandProperty>,
26	/// <https://schema.org/broker>
27	pub r#broker: Vec<BrokerProperty>,
28	/// <https://schema.org/category>
29	pub r#category: Vec<CategoryProperty>,
30	/// <https://schema.org/hasOfferCatalog>
31	pub r#has_offer_catalog: Vec<HasOfferCatalogProperty>,
32	/// <https://schema.org/hoursAvailable>
33	pub r#hours_available: Vec<HoursAvailableProperty>,
34	/// <https://schema.org/isRelatedTo>
35	pub r#is_related_to: Vec<IsRelatedToProperty>,
36	/// <https://schema.org/isSimilarTo>
37	pub r#is_similar_to: Vec<IsSimilarToProperty>,
38	/// <https://schema.org/logo>
39	pub r#logo: Vec<LogoProperty>,
40	/// <https://schema.org/offers>
41	pub r#offers: Vec<OffersProperty>,
42	/// <https://schema.org/produces>
43	#[deprecated = "This schema is superseded by <https://schema.org/serviceOutput>."]
44	pub r#produces: Vec<ProducesProperty>,
45	/// <https://schema.org/provider>
46	pub r#provider: Vec<ProviderProperty>,
47	/// <https://schema.org/providerMobility>
48	pub r#provider_mobility: Vec<ProviderMobilityProperty>,
49	/// <https://schema.org/review>
50	pub r#review: Vec<ReviewProperty>,
51	/// <https://schema.org/serviceArea>
52	#[deprecated = "This schema is superseded by <https://schema.org/areaServed>."]
53	pub r#service_area: Vec<ServiceAreaProperty>,
54	/// <https://schema.org/serviceAudience>
55	#[deprecated = "This schema is superseded by <https://schema.org/audience>."]
56	pub r#service_audience: Vec<ServiceAudienceProperty>,
57	/// <https://schema.org/serviceOutput>
58	pub r#service_output: Vec<ServiceOutputProperty>,
59	/// <https://schema.org/serviceType>
60	pub r#service_type: Vec<ServiceTypeProperty>,
61	/// <https://schema.org/slogan>
62	pub r#slogan: Vec<SloganProperty>,
63	/// <https://schema.org/termsOfService>
64	pub r#terms_of_service: Vec<TermsOfServiceProperty>,
65	/// <https://schema.org/additionalType>
66	pub r#additional_type: Vec<AdditionalTypeProperty>,
67	/// <https://schema.org/alternateName>
68	pub r#alternate_name: Vec<AlternateNameProperty>,
69	/// <https://schema.org/description>
70	pub r#description: Vec<DescriptionProperty>,
71	/// <https://schema.org/disambiguatingDescription>
72	pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
73	/// <https://schema.org/identifier>
74	pub r#identifier: Vec<IdentifierProperty>,
75	/// <https://schema.org/image>
76	pub r#image: Vec<ImageProperty>,
77	/// <https://schema.org/mainEntityOfPage>
78	pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
79	/// <https://schema.org/name>
80	pub r#name: Vec<NameProperty>,
81	/// <https://schema.org/potentialAction>
82	pub r#potential_action: Vec<PotentialActionProperty>,
83	/// <https://schema.org/sameAs>
84	pub r#same_as: Vec<SameAsProperty>,
85	/// <https://schema.org/subjectOf>
86	pub r#subject_of: Vec<SubjectOfProperty>,
87	/// <https://schema.org/url>
88	pub r#url: Vec<UrlProperty>,
89}
90/// This trait is for properties from <https://schema.org/BrokerageAccount>.
91pub trait BrokerageAccountTrait {}
92impl BrokerageAccountTrait for BrokerageAccount {}
93impl FinancialProductTrait for BrokerageAccount {
94	fn get_annual_percentage_rate(&self) -> &[AnnualPercentageRateProperty] {
95		self.r#annual_percentage_rate.as_slice()
96	}
97	fn take_annual_percentage_rate(&mut self) -> Vec<AnnualPercentageRateProperty> {
98		std::mem::take(&mut self.r#annual_percentage_rate)
99	}
100	fn get_fees_and_commissions_specification(&self) -> &[FeesAndCommissionsSpecificationProperty] {
101		self.r#fees_and_commissions_specification.as_slice()
102	}
103	fn take_fees_and_commissions_specification(
104		&mut self,
105	) -> Vec<FeesAndCommissionsSpecificationProperty> {
106		std::mem::take(&mut self.r#fees_and_commissions_specification)
107	}
108	fn get_interest_rate(&self) -> &[InterestRateProperty] {
109		self.r#interest_rate.as_slice()
110	}
111	fn take_interest_rate(&mut self) -> Vec<InterestRateProperty> {
112		std::mem::take(&mut self.r#interest_rate)
113	}
114}
115impl InvestmentOrDepositTrait for BrokerageAccount {
116	fn get_amount(&self) -> &[AmountProperty] {
117		self.r#amount.as_slice()
118	}
119	fn take_amount(&mut self) -> Vec<AmountProperty> {
120		std::mem::take(&mut self.r#amount)
121	}
122}
123impl ServiceTrait for BrokerageAccount {
124	fn get_aggregate_rating(&self) -> &[AggregateRatingProperty] {
125		self.r#aggregate_rating.as_slice()
126	}
127	fn take_aggregate_rating(&mut self) -> Vec<AggregateRatingProperty> {
128		std::mem::take(&mut self.r#aggregate_rating)
129	}
130	fn get_area_served(&self) -> &[AreaServedProperty] {
131		self.r#area_served.as_slice()
132	}
133	fn take_area_served(&mut self) -> Vec<AreaServedProperty> {
134		std::mem::take(&mut self.r#area_served)
135	}
136	fn get_audience(&self) -> &[AudienceProperty] {
137		self.r#audience.as_slice()
138	}
139	fn take_audience(&mut self) -> Vec<AudienceProperty> {
140		std::mem::take(&mut self.r#audience)
141	}
142	fn get_available_channel(&self) -> &[AvailableChannelProperty] {
143		self.r#available_channel.as_slice()
144	}
145	fn take_available_channel(&mut self) -> Vec<AvailableChannelProperty> {
146		std::mem::take(&mut self.r#available_channel)
147	}
148	fn get_award(&self) -> &[AwardProperty] {
149		self.r#award.as_slice()
150	}
151	fn take_award(&mut self) -> Vec<AwardProperty> {
152		std::mem::take(&mut self.r#award)
153	}
154	fn get_brand(&self) -> &[BrandProperty] {
155		self.r#brand.as_slice()
156	}
157	fn take_brand(&mut self) -> Vec<BrandProperty> {
158		std::mem::take(&mut self.r#brand)
159	}
160	fn get_broker(&self) -> &[BrokerProperty] {
161		self.r#broker.as_slice()
162	}
163	fn take_broker(&mut self) -> Vec<BrokerProperty> {
164		std::mem::take(&mut self.r#broker)
165	}
166	fn get_category(&self) -> &[CategoryProperty] {
167		self.r#category.as_slice()
168	}
169	fn take_category(&mut self) -> Vec<CategoryProperty> {
170		std::mem::take(&mut self.r#category)
171	}
172	fn get_has_offer_catalog(&self) -> &[HasOfferCatalogProperty] {
173		self.r#has_offer_catalog.as_slice()
174	}
175	fn take_has_offer_catalog(&mut self) -> Vec<HasOfferCatalogProperty> {
176		std::mem::take(&mut self.r#has_offer_catalog)
177	}
178	fn get_hours_available(&self) -> &[HoursAvailableProperty] {
179		self.r#hours_available.as_slice()
180	}
181	fn take_hours_available(&mut self) -> Vec<HoursAvailableProperty> {
182		std::mem::take(&mut self.r#hours_available)
183	}
184	fn get_is_related_to(&self) -> &[IsRelatedToProperty] {
185		self.r#is_related_to.as_slice()
186	}
187	fn take_is_related_to(&mut self) -> Vec<IsRelatedToProperty> {
188		std::mem::take(&mut self.r#is_related_to)
189	}
190	fn get_is_similar_to(&self) -> &[IsSimilarToProperty] {
191		self.r#is_similar_to.as_slice()
192	}
193	fn take_is_similar_to(&mut self) -> Vec<IsSimilarToProperty> {
194		std::mem::take(&mut self.r#is_similar_to)
195	}
196	fn get_logo(&self) -> &[LogoProperty] {
197		self.r#logo.as_slice()
198	}
199	fn take_logo(&mut self) -> Vec<LogoProperty> {
200		std::mem::take(&mut self.r#logo)
201	}
202	fn get_offers(&self) -> &[OffersProperty] {
203		self.r#offers.as_slice()
204	}
205	fn take_offers(&mut self) -> Vec<OffersProperty> {
206		std::mem::take(&mut self.r#offers)
207	}
208	fn get_produces(&self) -> &[ProducesProperty] {
209		self.r#produces.as_slice()
210	}
211	fn take_produces(&mut self) -> Vec<ProducesProperty> {
212		std::mem::take(&mut self.r#produces)
213	}
214	fn get_provider(&self) -> &[ProviderProperty] {
215		self.r#provider.as_slice()
216	}
217	fn take_provider(&mut self) -> Vec<ProviderProperty> {
218		std::mem::take(&mut self.r#provider)
219	}
220	fn get_provider_mobility(&self) -> &[ProviderMobilityProperty] {
221		self.r#provider_mobility.as_slice()
222	}
223	fn take_provider_mobility(&mut self) -> Vec<ProviderMobilityProperty> {
224		std::mem::take(&mut self.r#provider_mobility)
225	}
226	fn get_review(&self) -> &[ReviewProperty] {
227		self.r#review.as_slice()
228	}
229	fn take_review(&mut self) -> Vec<ReviewProperty> {
230		std::mem::take(&mut self.r#review)
231	}
232	fn get_service_area(&self) -> &[ServiceAreaProperty] {
233		self.r#service_area.as_slice()
234	}
235	fn take_service_area(&mut self) -> Vec<ServiceAreaProperty> {
236		std::mem::take(&mut self.r#service_area)
237	}
238	fn get_service_audience(&self) -> &[ServiceAudienceProperty] {
239		self.r#service_audience.as_slice()
240	}
241	fn take_service_audience(&mut self) -> Vec<ServiceAudienceProperty> {
242		std::mem::take(&mut self.r#service_audience)
243	}
244	fn get_service_output(&self) -> &[ServiceOutputProperty] {
245		self.r#service_output.as_slice()
246	}
247	fn take_service_output(&mut self) -> Vec<ServiceOutputProperty> {
248		std::mem::take(&mut self.r#service_output)
249	}
250	fn get_service_type(&self) -> &[ServiceTypeProperty] {
251		self.r#service_type.as_slice()
252	}
253	fn take_service_type(&mut self) -> Vec<ServiceTypeProperty> {
254		std::mem::take(&mut self.r#service_type)
255	}
256	fn get_slogan(&self) -> &[SloganProperty] {
257		self.r#slogan.as_slice()
258	}
259	fn take_slogan(&mut self) -> Vec<SloganProperty> {
260		std::mem::take(&mut self.r#slogan)
261	}
262	fn get_terms_of_service(&self) -> &[TermsOfServiceProperty] {
263		self.r#terms_of_service.as_slice()
264	}
265	fn take_terms_of_service(&mut self) -> Vec<TermsOfServiceProperty> {
266		std::mem::take(&mut self.r#terms_of_service)
267	}
268}
269impl ThingTrait for BrokerageAccount {
270	fn get_additional_type(&self) -> &[AdditionalTypeProperty] {
271		self.r#additional_type.as_slice()
272	}
273	fn take_additional_type(&mut self) -> Vec<AdditionalTypeProperty> {
274		std::mem::take(&mut self.r#additional_type)
275	}
276	fn get_alternate_name(&self) -> &[AlternateNameProperty] {
277		self.r#alternate_name.as_slice()
278	}
279	fn take_alternate_name(&mut self) -> Vec<AlternateNameProperty> {
280		std::mem::take(&mut self.r#alternate_name)
281	}
282	fn get_description(&self) -> &[DescriptionProperty] {
283		self.r#description.as_slice()
284	}
285	fn take_description(&mut self) -> Vec<DescriptionProperty> {
286		std::mem::take(&mut self.r#description)
287	}
288	fn get_disambiguating_description(&self) -> &[DisambiguatingDescriptionProperty] {
289		self.r#disambiguating_description.as_slice()
290	}
291	fn take_disambiguating_description(&mut self) -> Vec<DisambiguatingDescriptionProperty> {
292		std::mem::take(&mut self.r#disambiguating_description)
293	}
294	fn get_identifier(&self) -> &[IdentifierProperty] {
295		self.r#identifier.as_slice()
296	}
297	fn take_identifier(&mut self) -> Vec<IdentifierProperty> {
298		std::mem::take(&mut self.r#identifier)
299	}
300	fn get_image(&self) -> &[ImageProperty] {
301		self.r#image.as_slice()
302	}
303	fn take_image(&mut self) -> Vec<ImageProperty> {
304		std::mem::take(&mut self.r#image)
305	}
306	fn get_main_entity_of_page(&self) -> &[MainEntityOfPageProperty] {
307		self.r#main_entity_of_page.as_slice()
308	}
309	fn take_main_entity_of_page(&mut self) -> Vec<MainEntityOfPageProperty> {
310		std::mem::take(&mut self.r#main_entity_of_page)
311	}
312	fn get_name(&self) -> &[NameProperty] {
313		self.r#name.as_slice()
314	}
315	fn take_name(&mut self) -> Vec<NameProperty> {
316		std::mem::take(&mut self.r#name)
317	}
318	fn get_potential_action(&self) -> &[PotentialActionProperty] {
319		self.r#potential_action.as_slice()
320	}
321	fn take_potential_action(&mut self) -> Vec<PotentialActionProperty> {
322		std::mem::take(&mut self.r#potential_action)
323	}
324	fn get_same_as(&self) -> &[SameAsProperty] {
325		self.r#same_as.as_slice()
326	}
327	fn take_same_as(&mut self) -> Vec<SameAsProperty> {
328		std::mem::take(&mut self.r#same_as)
329	}
330	fn get_subject_of(&self) -> &[SubjectOfProperty] {
331		self.r#subject_of.as_slice()
332	}
333	fn take_subject_of(&mut self) -> Vec<SubjectOfProperty> {
334		std::mem::take(&mut self.r#subject_of)
335	}
336	fn get_url(&self) -> &[UrlProperty] {
337		self.r#url.as_slice()
338	}
339	fn take_url(&mut self) -> Vec<UrlProperty> {
340		std::mem::take(&mut self.r#url)
341	}
342}
343#[cfg(feature = "serde")]
344mod serde {
345	use std::{fmt, fmt::Formatter};
346
347	use ::serde::{
348		de, de::Visitor, ser::SerializeStruct, Deserialize, Deserializer, Serialize, Serializer,
349	};
350
351	use super::*;
352	impl Serialize for BrokerageAccount {
353		fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
354		where
355			S: Serializer,
356		{
357			let len: usize = [
358				!Vec::is_empty(&self.r#annual_percentage_rate) as usize,
359				!Vec::is_empty(&self.r#fees_and_commissions_specification) as usize,
360				!Vec::is_empty(&self.r#interest_rate) as usize,
361				!Vec::is_empty(&self.r#amount) as usize,
362				!Vec::is_empty(&self.r#aggregate_rating) as usize,
363				!Vec::is_empty(&self.r#area_served) as usize,
364				!Vec::is_empty(&self.r#audience) as usize,
365				!Vec::is_empty(&self.r#available_channel) as usize,
366				!Vec::is_empty(&self.r#award) as usize,
367				!Vec::is_empty(&self.r#brand) as usize,
368				!Vec::is_empty(&self.r#broker) as usize,
369				!Vec::is_empty(&self.r#category) as usize,
370				!Vec::is_empty(&self.r#has_offer_catalog) as usize,
371				!Vec::is_empty(&self.r#hours_available) as usize,
372				!Vec::is_empty(&self.r#is_related_to) as usize,
373				!Vec::is_empty(&self.r#is_similar_to) as usize,
374				!Vec::is_empty(&self.r#logo) as usize,
375				!Vec::is_empty(&self.r#offers) as usize,
376				!Vec::is_empty(&self.r#produces) as usize,
377				!Vec::is_empty(&self.r#provider) as usize,
378				!Vec::is_empty(&self.r#provider_mobility) as usize,
379				!Vec::is_empty(&self.r#review) as usize,
380				!Vec::is_empty(&self.r#service_area) as usize,
381				!Vec::is_empty(&self.r#service_audience) as usize,
382				!Vec::is_empty(&self.r#service_output) as usize,
383				!Vec::is_empty(&self.r#service_type) as usize,
384				!Vec::is_empty(&self.r#slogan) as usize,
385				!Vec::is_empty(&self.r#terms_of_service) as usize,
386				!Vec::is_empty(&self.r#additional_type) as usize,
387				!Vec::is_empty(&self.r#alternate_name) as usize,
388				!Vec::is_empty(&self.r#description) as usize,
389				!Vec::is_empty(&self.r#disambiguating_description) as usize,
390				!Vec::is_empty(&self.r#identifier) as usize,
391				!Vec::is_empty(&self.r#image) as usize,
392				!Vec::is_empty(&self.r#main_entity_of_page) as usize,
393				!Vec::is_empty(&self.r#name) as usize,
394				!Vec::is_empty(&self.r#potential_action) as usize,
395				!Vec::is_empty(&self.r#same_as) as usize,
396				!Vec::is_empty(&self.r#subject_of) as usize,
397				!Vec::is_empty(&self.r#url) as usize,
398			]
399			.iter()
400			.sum();
401			let mut serialize_struct =
402				Serializer::serialize_struct(serializer, "BrokerageAccount", len)?;
403			if !Vec::is_empty(&self.r#annual_percentage_rate) {
404				serialize_struct.serialize_field("annualPercentageRate", {
405					struct SerializeWith<'a>(&'a Vec<AnnualPercentageRateProperty>);
406					impl<'a> Serialize for SerializeWith<'a> {
407						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
408						where
409							S: Serializer,
410						{
411							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
412								self.0, serializer,
413							)
414						}
415					}
416					&SerializeWith(&self.r#annual_percentage_rate)
417				})?;
418			} else {
419				serialize_struct.skip_field("annualPercentageRate")?;
420			}
421			if !Vec::is_empty(&self.r#fees_and_commissions_specification) {
422				serialize_struct.serialize_field("feesAndCommissionsSpecification", {
423					struct SerializeWith<'a>(&'a Vec<FeesAndCommissionsSpecificationProperty>);
424					impl<'a> Serialize for SerializeWith<'a> {
425						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
426						where
427							S: Serializer,
428						{
429							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
430								self.0, serializer,
431							)
432						}
433					}
434					&SerializeWith(&self.r#fees_and_commissions_specification)
435				})?;
436			} else {
437				serialize_struct.skip_field("feesAndCommissionsSpecification")?;
438			}
439			if !Vec::is_empty(&self.r#interest_rate) {
440				serialize_struct.serialize_field("interestRate", {
441					struct SerializeWith<'a>(&'a Vec<InterestRateProperty>);
442					impl<'a> Serialize for SerializeWith<'a> {
443						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
444						where
445							S: Serializer,
446						{
447							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
448								self.0, serializer,
449							)
450						}
451					}
452					&SerializeWith(&self.r#interest_rate)
453				})?;
454			} else {
455				serialize_struct.skip_field("interestRate")?;
456			}
457			if !Vec::is_empty(&self.r#amount) {
458				serialize_struct.serialize_field("amount", {
459					struct SerializeWith<'a>(&'a Vec<AmountProperty>);
460					impl<'a> Serialize for SerializeWith<'a> {
461						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
462						where
463							S: Serializer,
464						{
465							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
466								self.0, serializer,
467							)
468						}
469					}
470					&SerializeWith(&self.r#amount)
471				})?;
472			} else {
473				serialize_struct.skip_field("amount")?;
474			}
475			if !Vec::is_empty(&self.r#aggregate_rating) {
476				serialize_struct.serialize_field("aggregateRating", {
477					struct SerializeWith<'a>(&'a Vec<AggregateRatingProperty>);
478					impl<'a> Serialize for SerializeWith<'a> {
479						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
480						where
481							S: Serializer,
482						{
483							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
484								self.0, serializer,
485							)
486						}
487					}
488					&SerializeWith(&self.r#aggregate_rating)
489				})?;
490			} else {
491				serialize_struct.skip_field("aggregateRating")?;
492			}
493			if !Vec::is_empty(&self.r#area_served) {
494				serialize_struct.serialize_field("areaServed", {
495					struct SerializeWith<'a>(&'a Vec<AreaServedProperty>);
496					impl<'a> Serialize for SerializeWith<'a> {
497						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
498						where
499							S: Serializer,
500						{
501							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
502								self.0, serializer,
503							)
504						}
505					}
506					&SerializeWith(&self.r#area_served)
507				})?;
508			} else {
509				serialize_struct.skip_field("areaServed")?;
510			}
511			if !Vec::is_empty(&self.r#audience) {
512				serialize_struct.serialize_field("audience", {
513					struct SerializeWith<'a>(&'a Vec<AudienceProperty>);
514					impl<'a> Serialize for SerializeWith<'a> {
515						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
516						where
517							S: Serializer,
518						{
519							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
520								self.0, serializer,
521							)
522						}
523					}
524					&SerializeWith(&self.r#audience)
525				})?;
526			} else {
527				serialize_struct.skip_field("audience")?;
528			}
529			if !Vec::is_empty(&self.r#available_channel) {
530				serialize_struct.serialize_field("availableChannel", {
531					struct SerializeWith<'a>(&'a Vec<AvailableChannelProperty>);
532					impl<'a> Serialize for SerializeWith<'a> {
533						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
534						where
535							S: Serializer,
536						{
537							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
538								self.0, serializer,
539							)
540						}
541					}
542					&SerializeWith(&self.r#available_channel)
543				})?;
544			} else {
545				serialize_struct.skip_field("availableChannel")?;
546			}
547			if !Vec::is_empty(&self.r#award) {
548				serialize_struct.serialize_field("award", {
549					struct SerializeWith<'a>(&'a Vec<AwardProperty>);
550					impl<'a> Serialize for SerializeWith<'a> {
551						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
552						where
553							S: Serializer,
554						{
555							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
556								self.0, serializer,
557							)
558						}
559					}
560					&SerializeWith(&self.r#award)
561				})?;
562			} else {
563				serialize_struct.skip_field("award")?;
564			}
565			if !Vec::is_empty(&self.r#brand) {
566				serialize_struct.serialize_field("brand", {
567					struct SerializeWith<'a>(&'a Vec<BrandProperty>);
568					impl<'a> Serialize for SerializeWith<'a> {
569						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
570						where
571							S: Serializer,
572						{
573							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
574								self.0, serializer,
575							)
576						}
577					}
578					&SerializeWith(&self.r#brand)
579				})?;
580			} else {
581				serialize_struct.skip_field("brand")?;
582			}
583			if !Vec::is_empty(&self.r#broker) {
584				serialize_struct.serialize_field("broker", {
585					struct SerializeWith<'a>(&'a Vec<BrokerProperty>);
586					impl<'a> Serialize for SerializeWith<'a> {
587						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
588						where
589							S: Serializer,
590						{
591							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
592								self.0, serializer,
593							)
594						}
595					}
596					&SerializeWith(&self.r#broker)
597				})?;
598			} else {
599				serialize_struct.skip_field("broker")?;
600			}
601			if !Vec::is_empty(&self.r#category) {
602				serialize_struct.serialize_field("category", {
603					struct SerializeWith<'a>(&'a Vec<CategoryProperty>);
604					impl<'a> Serialize for SerializeWith<'a> {
605						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
606						where
607							S: Serializer,
608						{
609							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
610								self.0, serializer,
611							)
612						}
613					}
614					&SerializeWith(&self.r#category)
615				})?;
616			} else {
617				serialize_struct.skip_field("category")?;
618			}
619			if !Vec::is_empty(&self.r#has_offer_catalog) {
620				serialize_struct.serialize_field("hasOfferCatalog", {
621					struct SerializeWith<'a>(&'a Vec<HasOfferCatalogProperty>);
622					impl<'a> Serialize for SerializeWith<'a> {
623						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
624						where
625							S: Serializer,
626						{
627							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
628								self.0, serializer,
629							)
630						}
631					}
632					&SerializeWith(&self.r#has_offer_catalog)
633				})?;
634			} else {
635				serialize_struct.skip_field("hasOfferCatalog")?;
636			}
637			if !Vec::is_empty(&self.r#hours_available) {
638				serialize_struct.serialize_field("hoursAvailable", {
639					struct SerializeWith<'a>(&'a Vec<HoursAvailableProperty>);
640					impl<'a> Serialize for SerializeWith<'a> {
641						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
642						where
643							S: Serializer,
644						{
645							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
646								self.0, serializer,
647							)
648						}
649					}
650					&SerializeWith(&self.r#hours_available)
651				})?;
652			} else {
653				serialize_struct.skip_field("hoursAvailable")?;
654			}
655			if !Vec::is_empty(&self.r#is_related_to) {
656				serialize_struct.serialize_field("isRelatedTo", {
657					struct SerializeWith<'a>(&'a Vec<IsRelatedToProperty>);
658					impl<'a> Serialize for SerializeWith<'a> {
659						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
660						where
661							S: Serializer,
662						{
663							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
664								self.0, serializer,
665							)
666						}
667					}
668					&SerializeWith(&self.r#is_related_to)
669				})?;
670			} else {
671				serialize_struct.skip_field("isRelatedTo")?;
672			}
673			if !Vec::is_empty(&self.r#is_similar_to) {
674				serialize_struct.serialize_field("isSimilarTo", {
675					struct SerializeWith<'a>(&'a Vec<IsSimilarToProperty>);
676					impl<'a> Serialize for SerializeWith<'a> {
677						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
678						where
679							S: Serializer,
680						{
681							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
682								self.0, serializer,
683							)
684						}
685					}
686					&SerializeWith(&self.r#is_similar_to)
687				})?;
688			} else {
689				serialize_struct.skip_field("isSimilarTo")?;
690			}
691			if !Vec::is_empty(&self.r#logo) {
692				serialize_struct.serialize_field("logo", {
693					struct SerializeWith<'a>(&'a Vec<LogoProperty>);
694					impl<'a> Serialize for SerializeWith<'a> {
695						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
696						where
697							S: Serializer,
698						{
699							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
700								self.0, serializer,
701							)
702						}
703					}
704					&SerializeWith(&self.r#logo)
705				})?;
706			} else {
707				serialize_struct.skip_field("logo")?;
708			}
709			if !Vec::is_empty(&self.r#offers) {
710				serialize_struct.serialize_field("offers", {
711					struct SerializeWith<'a>(&'a Vec<OffersProperty>);
712					impl<'a> Serialize for SerializeWith<'a> {
713						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
714						where
715							S: Serializer,
716						{
717							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
718								self.0, serializer,
719							)
720						}
721					}
722					&SerializeWith(&self.r#offers)
723				})?;
724			} else {
725				serialize_struct.skip_field("offers")?;
726			}
727			if !Vec::is_empty(&self.r#produces) {
728				serialize_struct.serialize_field("produces", {
729					struct SerializeWith<'a>(&'a Vec<ProducesProperty>);
730					impl<'a> Serialize for SerializeWith<'a> {
731						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
732						where
733							S: Serializer,
734						{
735							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
736								self.0, serializer,
737							)
738						}
739					}
740					&SerializeWith(&self.r#produces)
741				})?;
742			} else {
743				serialize_struct.skip_field("produces")?;
744			}
745			if !Vec::is_empty(&self.r#provider) {
746				serialize_struct.serialize_field("provider", {
747					struct SerializeWith<'a>(&'a Vec<ProviderProperty>);
748					impl<'a> Serialize for SerializeWith<'a> {
749						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
750						where
751							S: Serializer,
752						{
753							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
754								self.0, serializer,
755							)
756						}
757					}
758					&SerializeWith(&self.r#provider)
759				})?;
760			} else {
761				serialize_struct.skip_field("provider")?;
762			}
763			if !Vec::is_empty(&self.r#provider_mobility) {
764				serialize_struct.serialize_field("providerMobility", {
765					struct SerializeWith<'a>(&'a Vec<ProviderMobilityProperty>);
766					impl<'a> Serialize for SerializeWith<'a> {
767						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
768						where
769							S: Serializer,
770						{
771							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
772								self.0, serializer,
773							)
774						}
775					}
776					&SerializeWith(&self.r#provider_mobility)
777				})?;
778			} else {
779				serialize_struct.skip_field("providerMobility")?;
780			}
781			if !Vec::is_empty(&self.r#review) {
782				serialize_struct.serialize_field("review", {
783					struct SerializeWith<'a>(&'a Vec<ReviewProperty>);
784					impl<'a> Serialize for SerializeWith<'a> {
785						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
786						where
787							S: Serializer,
788						{
789							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
790								self.0, serializer,
791							)
792						}
793					}
794					&SerializeWith(&self.r#review)
795				})?;
796			} else {
797				serialize_struct.skip_field("review")?;
798			}
799			if !Vec::is_empty(&self.r#service_area) {
800				serialize_struct.serialize_field("serviceArea", {
801					struct SerializeWith<'a>(&'a Vec<ServiceAreaProperty>);
802					impl<'a> Serialize for SerializeWith<'a> {
803						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
804						where
805							S: Serializer,
806						{
807							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
808								self.0, serializer,
809							)
810						}
811					}
812					&SerializeWith(&self.r#service_area)
813				})?;
814			} else {
815				serialize_struct.skip_field("serviceArea")?;
816			}
817			if !Vec::is_empty(&self.r#service_audience) {
818				serialize_struct.serialize_field("serviceAudience", {
819					struct SerializeWith<'a>(&'a Vec<ServiceAudienceProperty>);
820					impl<'a> Serialize for SerializeWith<'a> {
821						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
822						where
823							S: Serializer,
824						{
825							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
826								self.0, serializer,
827							)
828						}
829					}
830					&SerializeWith(&self.r#service_audience)
831				})?;
832			} else {
833				serialize_struct.skip_field("serviceAudience")?;
834			}
835			if !Vec::is_empty(&self.r#service_output) {
836				serialize_struct.serialize_field("serviceOutput", {
837					struct SerializeWith<'a>(&'a Vec<ServiceOutputProperty>);
838					impl<'a> Serialize for SerializeWith<'a> {
839						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
840						where
841							S: Serializer,
842						{
843							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
844								self.0, serializer,
845							)
846						}
847					}
848					&SerializeWith(&self.r#service_output)
849				})?;
850			} else {
851				serialize_struct.skip_field("serviceOutput")?;
852			}
853			if !Vec::is_empty(&self.r#service_type) {
854				serialize_struct.serialize_field("serviceType", {
855					struct SerializeWith<'a>(&'a Vec<ServiceTypeProperty>);
856					impl<'a> Serialize for SerializeWith<'a> {
857						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
858						where
859							S: Serializer,
860						{
861							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
862								self.0, serializer,
863							)
864						}
865					}
866					&SerializeWith(&self.r#service_type)
867				})?;
868			} else {
869				serialize_struct.skip_field("serviceType")?;
870			}
871			if !Vec::is_empty(&self.r#slogan) {
872				serialize_struct.serialize_field("slogan", {
873					struct SerializeWith<'a>(&'a Vec<SloganProperty>);
874					impl<'a> Serialize for SerializeWith<'a> {
875						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
876						where
877							S: Serializer,
878						{
879							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
880								self.0, serializer,
881							)
882						}
883					}
884					&SerializeWith(&self.r#slogan)
885				})?;
886			} else {
887				serialize_struct.skip_field("slogan")?;
888			}
889			if !Vec::is_empty(&self.r#terms_of_service) {
890				serialize_struct.serialize_field("termsOfService", {
891					struct SerializeWith<'a>(&'a Vec<TermsOfServiceProperty>);
892					impl<'a> Serialize for SerializeWith<'a> {
893						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
894						where
895							S: Serializer,
896						{
897							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
898								self.0, serializer,
899							)
900						}
901					}
902					&SerializeWith(&self.r#terms_of_service)
903				})?;
904			} else {
905				serialize_struct.skip_field("termsOfService")?;
906			}
907			if !Vec::is_empty(&self.r#additional_type) {
908				serialize_struct.serialize_field("additionalType", {
909					struct SerializeWith<'a>(&'a Vec<AdditionalTypeProperty>);
910					impl<'a> Serialize for SerializeWith<'a> {
911						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
912						where
913							S: Serializer,
914						{
915							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
916								self.0, serializer,
917							)
918						}
919					}
920					&SerializeWith(&self.r#additional_type)
921				})?;
922			} else {
923				serialize_struct.skip_field("additionalType")?;
924			}
925			if !Vec::is_empty(&self.r#alternate_name) {
926				serialize_struct.serialize_field("alternateName", {
927					struct SerializeWith<'a>(&'a Vec<AlternateNameProperty>);
928					impl<'a> Serialize for SerializeWith<'a> {
929						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
930						where
931							S: Serializer,
932						{
933							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
934								self.0, serializer,
935							)
936						}
937					}
938					&SerializeWith(&self.r#alternate_name)
939				})?;
940			} else {
941				serialize_struct.skip_field("alternateName")?;
942			}
943			if !Vec::is_empty(&self.r#description) {
944				serialize_struct.serialize_field("description", {
945					struct SerializeWith<'a>(&'a Vec<DescriptionProperty>);
946					impl<'a> Serialize for SerializeWith<'a> {
947						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
948						where
949							S: Serializer,
950						{
951							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
952								self.0, serializer,
953							)
954						}
955					}
956					&SerializeWith(&self.r#description)
957				})?;
958			} else {
959				serialize_struct.skip_field("description")?;
960			}
961			if !Vec::is_empty(&self.r#disambiguating_description) {
962				serialize_struct.serialize_field("disambiguatingDescription", {
963					struct SerializeWith<'a>(&'a Vec<DisambiguatingDescriptionProperty>);
964					impl<'a> Serialize for SerializeWith<'a> {
965						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
966						where
967							S: Serializer,
968						{
969							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
970								self.0, serializer,
971							)
972						}
973					}
974					&SerializeWith(&self.r#disambiguating_description)
975				})?;
976			} else {
977				serialize_struct.skip_field("disambiguatingDescription")?;
978			}
979			if !Vec::is_empty(&self.r#identifier) {
980				serialize_struct.serialize_field("identifier", {
981					struct SerializeWith<'a>(&'a Vec<IdentifierProperty>);
982					impl<'a> Serialize for SerializeWith<'a> {
983						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
984						where
985							S: Serializer,
986						{
987							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
988								self.0, serializer,
989							)
990						}
991					}
992					&SerializeWith(&self.r#identifier)
993				})?;
994			} else {
995				serialize_struct.skip_field("identifier")?;
996			}
997			if !Vec::is_empty(&self.r#image) {
998				serialize_struct.serialize_field("image", {
999					struct SerializeWith<'a>(&'a Vec<ImageProperty>);
1000					impl<'a> Serialize for SerializeWith<'a> {
1001						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1002						where
1003							S: Serializer,
1004						{
1005							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1006								self.0, serializer,
1007							)
1008						}
1009					}
1010					&SerializeWith(&self.r#image)
1011				})?;
1012			} else {
1013				serialize_struct.skip_field("image")?;
1014			}
1015			if !Vec::is_empty(&self.r#main_entity_of_page) {
1016				serialize_struct.serialize_field("mainEntityOfPage", {
1017					struct SerializeWith<'a>(&'a Vec<MainEntityOfPageProperty>);
1018					impl<'a> Serialize for SerializeWith<'a> {
1019						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1020						where
1021							S: Serializer,
1022						{
1023							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1024								self.0, serializer,
1025							)
1026						}
1027					}
1028					&SerializeWith(&self.r#main_entity_of_page)
1029				})?;
1030			} else {
1031				serialize_struct.skip_field("mainEntityOfPage")?;
1032			}
1033			if !Vec::is_empty(&self.r#name) {
1034				serialize_struct.serialize_field("name", {
1035					struct SerializeWith<'a>(&'a Vec<NameProperty>);
1036					impl<'a> Serialize for SerializeWith<'a> {
1037						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1038						where
1039							S: Serializer,
1040						{
1041							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1042								self.0, serializer,
1043							)
1044						}
1045					}
1046					&SerializeWith(&self.r#name)
1047				})?;
1048			} else {
1049				serialize_struct.skip_field("name")?;
1050			}
1051			if !Vec::is_empty(&self.r#potential_action) {
1052				serialize_struct.serialize_field("potentialAction", {
1053					struct SerializeWith<'a>(&'a Vec<PotentialActionProperty>);
1054					impl<'a> Serialize for SerializeWith<'a> {
1055						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1056						where
1057							S: Serializer,
1058						{
1059							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1060								self.0, serializer,
1061							)
1062						}
1063					}
1064					&SerializeWith(&self.r#potential_action)
1065				})?;
1066			} else {
1067				serialize_struct.skip_field("potentialAction")?;
1068			}
1069			if !Vec::is_empty(&self.r#same_as) {
1070				serialize_struct.serialize_field("sameAs", {
1071					struct SerializeWith<'a>(&'a Vec<SameAsProperty>);
1072					impl<'a> Serialize for SerializeWith<'a> {
1073						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1074						where
1075							S: Serializer,
1076						{
1077							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1078								self.0, serializer,
1079							)
1080						}
1081					}
1082					&SerializeWith(&self.r#same_as)
1083				})?;
1084			} else {
1085				serialize_struct.skip_field("sameAs")?;
1086			}
1087			if !Vec::is_empty(&self.r#subject_of) {
1088				serialize_struct.serialize_field("subjectOf", {
1089					struct SerializeWith<'a>(&'a Vec<SubjectOfProperty>);
1090					impl<'a> Serialize for SerializeWith<'a> {
1091						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1092						where
1093							S: Serializer,
1094						{
1095							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1096								self.0, serializer,
1097							)
1098						}
1099					}
1100					&SerializeWith(&self.r#subject_of)
1101				})?;
1102			} else {
1103				serialize_struct.skip_field("subjectOf")?;
1104			}
1105			if !Vec::is_empty(&self.r#url) {
1106				serialize_struct.serialize_field("url", {
1107					struct SerializeWith<'a>(&'a Vec<UrlProperty>);
1108					impl<'a> Serialize for SerializeWith<'a> {
1109						fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
1110						where
1111							S: Serializer,
1112						{
1113							serde_with::As::<serde_with::OneOrMany<serde_with::Same>>::serialize(
1114								self.0, serializer,
1115							)
1116						}
1117					}
1118					&SerializeWith(&self.r#url)
1119				})?;
1120			} else {
1121				serialize_struct.skip_field("url")?;
1122			}
1123			serialize_struct.end()
1124		}
1125	}
1126	impl<'de> Deserialize<'de> for BrokerageAccount {
1127		fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1128		where
1129			D: Deserializer<'de>,
1130		{
1131			enum Field {
1132				AnnualPercentageRate,
1133				FeesAndCommissionsSpecification,
1134				InterestRate,
1135				Amount,
1136				AggregateRating,
1137				AreaServed,
1138				Audience,
1139				AvailableChannel,
1140				Award,
1141				Brand,
1142				Broker,
1143				Category,
1144				HasOfferCatalog,
1145				HoursAvailable,
1146				IsRelatedTo,
1147				IsSimilarTo,
1148				Logo,
1149				Offers,
1150				Produces,
1151				Provider,
1152				ProviderMobility,
1153				Review,
1154				ServiceArea,
1155				ServiceAudience,
1156				ServiceOutput,
1157				ServiceType,
1158				Slogan,
1159				TermsOfService,
1160				AdditionalType,
1161				AlternateName,
1162				Description,
1163				DisambiguatingDescription,
1164				Identifier,
1165				Image,
1166				MainEntityOfPage,
1167				Name,
1168				PotentialAction,
1169				SameAs,
1170				SubjectOf,
1171				Url,
1172				Ignore,
1173			}
1174			struct FieldVisitor;
1175			impl<'de> Visitor<'de> for FieldVisitor {
1176				type Value = Field;
1177				fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1178					formatter.write_str("field identifier")
1179				}
1180				fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
1181				where
1182					E: de::Error,
1183				{
1184					match value {
1185						"annualPercentageRate" => Ok(Field::AnnualPercentageRate),
1186						"feesAndCommissionsSpecification" => {
1187							Ok(Field::FeesAndCommissionsSpecification)
1188						}
1189						"interestRate" => Ok(Field::InterestRate),
1190						"amount" => Ok(Field::Amount),
1191						"aggregateRating" => Ok(Field::AggregateRating),
1192						"areaServed" => Ok(Field::AreaServed),
1193						"audience" => Ok(Field::Audience),
1194						"availableChannel" => Ok(Field::AvailableChannel),
1195						"award" => Ok(Field::Award),
1196						"brand" => Ok(Field::Brand),
1197						"broker" => Ok(Field::Broker),
1198						"category" => Ok(Field::Category),
1199						"hasOfferCatalog" => Ok(Field::HasOfferCatalog),
1200						"hoursAvailable" => Ok(Field::HoursAvailable),
1201						"isRelatedTo" => Ok(Field::IsRelatedTo),
1202						"isSimilarTo" => Ok(Field::IsSimilarTo),
1203						"logo" => Ok(Field::Logo),
1204						"offers" => Ok(Field::Offers),
1205						"produces" => Ok(Field::Produces),
1206						"provider" => Ok(Field::Provider),
1207						"providerMobility" => Ok(Field::ProviderMobility),
1208						"review" => Ok(Field::Review),
1209						"serviceArea" => Ok(Field::ServiceArea),
1210						"serviceAudience" => Ok(Field::ServiceAudience),
1211						"serviceOutput" => Ok(Field::ServiceOutput),
1212						"serviceType" => Ok(Field::ServiceType),
1213						"slogan" => Ok(Field::Slogan),
1214						"termsOfService" => Ok(Field::TermsOfService),
1215						"additionalType" => Ok(Field::AdditionalType),
1216						"alternateName" => Ok(Field::AlternateName),
1217						"description" => Ok(Field::Description),
1218						"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1219						"identifier" => Ok(Field::Identifier),
1220						"image" => Ok(Field::Image),
1221						"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1222						"name" => Ok(Field::Name),
1223						"potentialAction" => Ok(Field::PotentialAction),
1224						"sameAs" => Ok(Field::SameAs),
1225						"subjectOf" => Ok(Field::SubjectOf),
1226						"url" => Ok(Field::Url),
1227						"id" | "type" => Ok(Field::Ignore),
1228						_ => Err(de::Error::unknown_field(value, FIELDS)),
1229					}
1230				}
1231				fn visit_bytes<E>(self, value: &[u8]) -> Result<Self::Value, E>
1232				where
1233					E: de::Error,
1234				{
1235					match value {
1236						b"annualPercentageRate" => Ok(Field::AnnualPercentageRate),
1237						b"feesAndCommissionsSpecification" => {
1238							Ok(Field::FeesAndCommissionsSpecification)
1239						}
1240						b"interestRate" => Ok(Field::InterestRate),
1241						b"amount" => Ok(Field::Amount),
1242						b"aggregateRating" => Ok(Field::AggregateRating),
1243						b"areaServed" => Ok(Field::AreaServed),
1244						b"audience" => Ok(Field::Audience),
1245						b"availableChannel" => Ok(Field::AvailableChannel),
1246						b"award" => Ok(Field::Award),
1247						b"brand" => Ok(Field::Brand),
1248						b"broker" => Ok(Field::Broker),
1249						b"category" => Ok(Field::Category),
1250						b"hasOfferCatalog" => Ok(Field::HasOfferCatalog),
1251						b"hoursAvailable" => Ok(Field::HoursAvailable),
1252						b"isRelatedTo" => Ok(Field::IsRelatedTo),
1253						b"isSimilarTo" => Ok(Field::IsSimilarTo),
1254						b"logo" => Ok(Field::Logo),
1255						b"offers" => Ok(Field::Offers),
1256						b"produces" => Ok(Field::Produces),
1257						b"provider" => Ok(Field::Provider),
1258						b"providerMobility" => Ok(Field::ProviderMobility),
1259						b"review" => Ok(Field::Review),
1260						b"serviceArea" => Ok(Field::ServiceArea),
1261						b"serviceAudience" => Ok(Field::ServiceAudience),
1262						b"serviceOutput" => Ok(Field::ServiceOutput),
1263						b"serviceType" => Ok(Field::ServiceType),
1264						b"slogan" => Ok(Field::Slogan),
1265						b"termsOfService" => Ok(Field::TermsOfService),
1266						b"additionalType" => Ok(Field::AdditionalType),
1267						b"alternateName" => Ok(Field::AlternateName),
1268						b"description" => Ok(Field::Description),
1269						b"disambiguatingDescription" => Ok(Field::DisambiguatingDescription),
1270						b"identifier" => Ok(Field::Identifier),
1271						b"image" => Ok(Field::Image),
1272						b"mainEntityOfPage" => Ok(Field::MainEntityOfPage),
1273						b"name" => Ok(Field::Name),
1274						b"potentialAction" => Ok(Field::PotentialAction),
1275						b"sameAs" => Ok(Field::SameAs),
1276						b"subjectOf" => Ok(Field::SubjectOf),
1277						b"url" => Ok(Field::Url),
1278						b"id" | b"type" => Ok(Field::Ignore),
1279						_ => {
1280							let value = &String::from_utf8_lossy(value);
1281							Err(de::Error::unknown_field(value, FIELDS))
1282						}
1283					}
1284				}
1285			}
1286			impl<'de> Deserialize<'de> for Field {
1287				fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1288				where
1289					D: Deserializer<'de>,
1290				{
1291					deserializer.deserialize_identifier(FieldVisitor)
1292				}
1293			}
1294			struct ClassVisitor;
1295			impl<'de> Visitor<'de> for ClassVisitor {
1296				type Value = BrokerageAccount;
1297				fn expecting(&self, formatter: &mut Formatter) -> fmt::Result {
1298					formatter.write_str("schema.org schema BrokerageAccount")
1299				}
1300				fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
1301				where
1302					A: de::MapAccess<'de>,
1303				{
1304					let mut r#annual_percentage_rate_property = None;
1305					let mut r#fees_and_commissions_specification_property = None;
1306					let mut r#interest_rate_property = None;
1307					let mut r#amount_property = None;
1308					let mut r#aggregate_rating_property = None;
1309					let mut r#area_served_property = None;
1310					let mut r#audience_property = None;
1311					let mut r#available_channel_property = None;
1312					let mut r#award_property = None;
1313					let mut r#brand_property = None;
1314					let mut r#broker_property = None;
1315					let mut r#category_property = None;
1316					let mut r#has_offer_catalog_property = None;
1317					let mut r#hours_available_property = None;
1318					let mut r#is_related_to_property = None;
1319					let mut r#is_similar_to_property = None;
1320					let mut r#logo_property = None;
1321					let mut r#offers_property = None;
1322					let mut r#produces_property = None;
1323					let mut r#provider_property = None;
1324					let mut r#provider_mobility_property = None;
1325					let mut r#review_property = None;
1326					let mut r#service_area_property = None;
1327					let mut r#service_audience_property = None;
1328					let mut r#service_output_property = None;
1329					let mut r#service_type_property = None;
1330					let mut r#slogan_property = None;
1331					let mut r#terms_of_service_property = None;
1332					let mut r#additional_type_property = None;
1333					let mut r#alternate_name_property = None;
1334					let mut r#description_property = None;
1335					let mut r#disambiguating_description_property = None;
1336					let mut r#identifier_property = None;
1337					let mut r#image_property = None;
1338					let mut r#main_entity_of_page_property = None;
1339					let mut r#name_property = None;
1340					let mut r#potential_action_property = None;
1341					let mut r#same_as_property = None;
1342					let mut r#subject_of_property = None;
1343					let mut r#url_property = None;
1344					while let Some(key) = map.next_key::<Field>()? {
1345						match key {
1346							Field::AnnualPercentageRate => {
1347								if r#annual_percentage_rate_property.is_some() {
1348									return Err(<A::Error as de::Error>::duplicate_field(
1349										"annualPercentageRate",
1350									));
1351								}
1352								r#annual_percentage_rate_property = Some({
1353									struct DeserializeWith(Vec<AnnualPercentageRateProperty>);
1354									impl<'de> Deserialize<'de> for DeserializeWith {
1355										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1356										where
1357											D: Deserializer<'de>,
1358										{
1359											Ok(DeserializeWith(serde_with::As::<
1360												serde_with::OneOrMany<serde_with::Same>,
1361											>::deserialize(deserializer)?))
1362										}
1363									}
1364									match map.next_value::<DeserializeWith>() {
1365										Ok(deserialize_with) => deserialize_with.0,
1366										Err(err) => {
1367											return Err(err);
1368										}
1369									}
1370								});
1371							}
1372							Field::FeesAndCommissionsSpecification => {
1373								if r#fees_and_commissions_specification_property.is_some() {
1374									return Err(<A::Error as de::Error>::duplicate_field(
1375										"feesAndCommissionsSpecification",
1376									));
1377								}
1378								r#fees_and_commissions_specification_property = Some({
1379									struct DeserializeWith(
1380										Vec<FeesAndCommissionsSpecificationProperty>,
1381									);
1382									impl<'de> Deserialize<'de> for DeserializeWith {
1383										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1384										where
1385											D: Deserializer<'de>,
1386										{
1387											Ok(DeserializeWith(serde_with::As::<
1388												serde_with::OneOrMany<serde_with::Same>,
1389											>::deserialize(deserializer)?))
1390										}
1391									}
1392									match map.next_value::<DeserializeWith>() {
1393										Ok(deserialize_with) => deserialize_with.0,
1394										Err(err) => {
1395											return Err(err);
1396										}
1397									}
1398								});
1399							}
1400							Field::InterestRate => {
1401								if r#interest_rate_property.is_some() {
1402									return Err(<A::Error as de::Error>::duplicate_field(
1403										"interestRate",
1404									));
1405								}
1406								r#interest_rate_property = Some({
1407									struct DeserializeWith(Vec<InterestRateProperty>);
1408									impl<'de> Deserialize<'de> for DeserializeWith {
1409										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1410										where
1411											D: Deserializer<'de>,
1412										{
1413											Ok(DeserializeWith(serde_with::As::<
1414												serde_with::OneOrMany<serde_with::Same>,
1415											>::deserialize(deserializer)?))
1416										}
1417									}
1418									match map.next_value::<DeserializeWith>() {
1419										Ok(deserialize_with) => deserialize_with.0,
1420										Err(err) => {
1421											return Err(err);
1422										}
1423									}
1424								});
1425							}
1426							Field::Amount => {
1427								if r#amount_property.is_some() {
1428									return Err(<A::Error as de::Error>::duplicate_field("amount"));
1429								}
1430								r#amount_property = Some({
1431									struct DeserializeWith(Vec<AmountProperty>);
1432									impl<'de> Deserialize<'de> for DeserializeWith {
1433										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1434										where
1435											D: Deserializer<'de>,
1436										{
1437											Ok(DeserializeWith(serde_with::As::<
1438												serde_with::OneOrMany<serde_with::Same>,
1439											>::deserialize(deserializer)?))
1440										}
1441									}
1442									match map.next_value::<DeserializeWith>() {
1443										Ok(deserialize_with) => deserialize_with.0,
1444										Err(err) => {
1445											return Err(err);
1446										}
1447									}
1448								});
1449							}
1450							Field::AggregateRating => {
1451								if r#aggregate_rating_property.is_some() {
1452									return Err(<A::Error as de::Error>::duplicate_field(
1453										"aggregateRating",
1454									));
1455								}
1456								r#aggregate_rating_property = Some({
1457									struct DeserializeWith(Vec<AggregateRatingProperty>);
1458									impl<'de> Deserialize<'de> for DeserializeWith {
1459										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1460										where
1461											D: Deserializer<'de>,
1462										{
1463											Ok(DeserializeWith(serde_with::As::<
1464												serde_with::OneOrMany<serde_with::Same>,
1465											>::deserialize(deserializer)?))
1466										}
1467									}
1468									match map.next_value::<DeserializeWith>() {
1469										Ok(deserialize_with) => deserialize_with.0,
1470										Err(err) => {
1471											return Err(err);
1472										}
1473									}
1474								});
1475							}
1476							Field::AreaServed => {
1477								if r#area_served_property.is_some() {
1478									return Err(<A::Error as de::Error>::duplicate_field(
1479										"areaServed",
1480									));
1481								}
1482								r#area_served_property = Some({
1483									struct DeserializeWith(Vec<AreaServedProperty>);
1484									impl<'de> Deserialize<'de> for DeserializeWith {
1485										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1486										where
1487											D: Deserializer<'de>,
1488										{
1489											Ok(DeserializeWith(serde_with::As::<
1490												serde_with::OneOrMany<serde_with::Same>,
1491											>::deserialize(deserializer)?))
1492										}
1493									}
1494									match map.next_value::<DeserializeWith>() {
1495										Ok(deserialize_with) => deserialize_with.0,
1496										Err(err) => {
1497											return Err(err);
1498										}
1499									}
1500								});
1501							}
1502							Field::Audience => {
1503								if r#audience_property.is_some() {
1504									return Err(<A::Error as de::Error>::duplicate_field(
1505										"audience",
1506									));
1507								}
1508								r#audience_property = Some({
1509									struct DeserializeWith(Vec<AudienceProperty>);
1510									impl<'de> Deserialize<'de> for DeserializeWith {
1511										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1512										where
1513											D: Deserializer<'de>,
1514										{
1515											Ok(DeserializeWith(serde_with::As::<
1516												serde_with::OneOrMany<serde_with::Same>,
1517											>::deserialize(deserializer)?))
1518										}
1519									}
1520									match map.next_value::<DeserializeWith>() {
1521										Ok(deserialize_with) => deserialize_with.0,
1522										Err(err) => {
1523											return Err(err);
1524										}
1525									}
1526								});
1527							}
1528							Field::AvailableChannel => {
1529								if r#available_channel_property.is_some() {
1530									return Err(<A::Error as de::Error>::duplicate_field(
1531										"availableChannel",
1532									));
1533								}
1534								r#available_channel_property = Some({
1535									struct DeserializeWith(Vec<AvailableChannelProperty>);
1536									impl<'de> Deserialize<'de> for DeserializeWith {
1537										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1538										where
1539											D: Deserializer<'de>,
1540										{
1541											Ok(DeserializeWith(serde_with::As::<
1542												serde_with::OneOrMany<serde_with::Same>,
1543											>::deserialize(deserializer)?))
1544										}
1545									}
1546									match map.next_value::<DeserializeWith>() {
1547										Ok(deserialize_with) => deserialize_with.0,
1548										Err(err) => {
1549											return Err(err);
1550										}
1551									}
1552								});
1553							}
1554							Field::Award => {
1555								if r#award_property.is_some() {
1556									return Err(<A::Error as de::Error>::duplicate_field("award"));
1557								}
1558								r#award_property = Some({
1559									struct DeserializeWith(Vec<AwardProperty>);
1560									impl<'de> Deserialize<'de> for DeserializeWith {
1561										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1562										where
1563											D: Deserializer<'de>,
1564										{
1565											Ok(DeserializeWith(serde_with::As::<
1566												serde_with::OneOrMany<serde_with::Same>,
1567											>::deserialize(deserializer)?))
1568										}
1569									}
1570									match map.next_value::<DeserializeWith>() {
1571										Ok(deserialize_with) => deserialize_with.0,
1572										Err(err) => {
1573											return Err(err);
1574										}
1575									}
1576								});
1577							}
1578							Field::Brand => {
1579								if r#brand_property.is_some() {
1580									return Err(<A::Error as de::Error>::duplicate_field("brand"));
1581								}
1582								r#brand_property = Some({
1583									struct DeserializeWith(Vec<BrandProperty>);
1584									impl<'de> Deserialize<'de> for DeserializeWith {
1585										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1586										where
1587											D: Deserializer<'de>,
1588										{
1589											Ok(DeserializeWith(serde_with::As::<
1590												serde_with::OneOrMany<serde_with::Same>,
1591											>::deserialize(deserializer)?))
1592										}
1593									}
1594									match map.next_value::<DeserializeWith>() {
1595										Ok(deserialize_with) => deserialize_with.0,
1596										Err(err) => {
1597											return Err(err);
1598										}
1599									}
1600								});
1601							}
1602							Field::Broker => {
1603								if r#broker_property.is_some() {
1604									return Err(<A::Error as de::Error>::duplicate_field("broker"));
1605								}
1606								r#broker_property = Some({
1607									struct DeserializeWith(Vec<BrokerProperty>);
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::Category => {
1627								if r#category_property.is_some() {
1628									return Err(<A::Error as de::Error>::duplicate_field(
1629										"category",
1630									));
1631								}
1632								r#category_property = Some({
1633									struct DeserializeWith(Vec<CategoryProperty>);
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::HasOfferCatalog => {
1653								if r#has_offer_catalog_property.is_some() {
1654									return Err(<A::Error as de::Error>::duplicate_field(
1655										"hasOfferCatalog",
1656									));
1657								}
1658								r#has_offer_catalog_property = Some({
1659									struct DeserializeWith(Vec<HasOfferCatalogProperty>);
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::HoursAvailable => {
1679								if r#hours_available_property.is_some() {
1680									return Err(<A::Error as de::Error>::duplicate_field(
1681										"hoursAvailable",
1682									));
1683								}
1684								r#hours_available_property = Some({
1685									struct DeserializeWith(Vec<HoursAvailableProperty>);
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::IsRelatedTo => {
1705								if r#is_related_to_property.is_some() {
1706									return Err(<A::Error as de::Error>::duplicate_field(
1707										"isRelatedTo",
1708									));
1709								}
1710								r#is_related_to_property = Some({
1711									struct DeserializeWith(Vec<IsRelatedToProperty>);
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::IsSimilarTo => {
1731								if r#is_similar_to_property.is_some() {
1732									return Err(<A::Error as de::Error>::duplicate_field(
1733										"isSimilarTo",
1734									));
1735								}
1736								r#is_similar_to_property = Some({
1737									struct DeserializeWith(Vec<IsSimilarToProperty>);
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::Logo => {
1757								if r#logo_property.is_some() {
1758									return Err(<A::Error as de::Error>::duplicate_field("logo"));
1759								}
1760								r#logo_property = Some({
1761									struct DeserializeWith(Vec<LogoProperty>);
1762									impl<'de> Deserialize<'de> for DeserializeWith {
1763										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1764										where
1765											D: Deserializer<'de>,
1766										{
1767											Ok(DeserializeWith(serde_with::As::<
1768												serde_with::OneOrMany<serde_with::Same>,
1769											>::deserialize(deserializer)?))
1770										}
1771									}
1772									match map.next_value::<DeserializeWith>() {
1773										Ok(deserialize_with) => deserialize_with.0,
1774										Err(err) => {
1775											return Err(err);
1776										}
1777									}
1778								});
1779							}
1780							Field::Offers => {
1781								if r#offers_property.is_some() {
1782									return Err(<A::Error as de::Error>::duplicate_field("offers"));
1783								}
1784								r#offers_property = Some({
1785									struct DeserializeWith(Vec<OffersProperty>);
1786									impl<'de> Deserialize<'de> for DeserializeWith {
1787										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1788										where
1789											D: Deserializer<'de>,
1790										{
1791											Ok(DeserializeWith(serde_with::As::<
1792												serde_with::OneOrMany<serde_with::Same>,
1793											>::deserialize(deserializer)?))
1794										}
1795									}
1796									match map.next_value::<DeserializeWith>() {
1797										Ok(deserialize_with) => deserialize_with.0,
1798										Err(err) => {
1799											return Err(err);
1800										}
1801									}
1802								});
1803							}
1804							Field::Produces => {
1805								if r#produces_property.is_some() {
1806									return Err(<A::Error as de::Error>::duplicate_field(
1807										"produces",
1808									));
1809								}
1810								r#produces_property = Some({
1811									struct DeserializeWith(Vec<ProducesProperty>);
1812									impl<'de> Deserialize<'de> for DeserializeWith {
1813										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1814										where
1815											D: Deserializer<'de>,
1816										{
1817											Ok(DeserializeWith(serde_with::As::<
1818												serde_with::OneOrMany<serde_with::Same>,
1819											>::deserialize(deserializer)?))
1820										}
1821									}
1822									match map.next_value::<DeserializeWith>() {
1823										Ok(deserialize_with) => deserialize_with.0,
1824										Err(err) => {
1825											return Err(err);
1826										}
1827									}
1828								});
1829							}
1830							Field::Provider => {
1831								if r#provider_property.is_some() {
1832									return Err(<A::Error as de::Error>::duplicate_field(
1833										"provider",
1834									));
1835								}
1836								r#provider_property = Some({
1837									struct DeserializeWith(Vec<ProviderProperty>);
1838									impl<'de> Deserialize<'de> for DeserializeWith {
1839										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1840										where
1841											D: Deserializer<'de>,
1842										{
1843											Ok(DeserializeWith(serde_with::As::<
1844												serde_with::OneOrMany<serde_with::Same>,
1845											>::deserialize(deserializer)?))
1846										}
1847									}
1848									match map.next_value::<DeserializeWith>() {
1849										Ok(deserialize_with) => deserialize_with.0,
1850										Err(err) => {
1851											return Err(err);
1852										}
1853									}
1854								});
1855							}
1856							Field::ProviderMobility => {
1857								if r#provider_mobility_property.is_some() {
1858									return Err(<A::Error as de::Error>::duplicate_field(
1859										"providerMobility",
1860									));
1861								}
1862								r#provider_mobility_property = Some({
1863									struct DeserializeWith(Vec<ProviderMobilityProperty>);
1864									impl<'de> Deserialize<'de> for DeserializeWith {
1865										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1866										where
1867											D: Deserializer<'de>,
1868										{
1869											Ok(DeserializeWith(serde_with::As::<
1870												serde_with::OneOrMany<serde_with::Same>,
1871											>::deserialize(deserializer)?))
1872										}
1873									}
1874									match map.next_value::<DeserializeWith>() {
1875										Ok(deserialize_with) => deserialize_with.0,
1876										Err(err) => {
1877											return Err(err);
1878										}
1879									}
1880								});
1881							}
1882							Field::Review => {
1883								if r#review_property.is_some() {
1884									return Err(<A::Error as de::Error>::duplicate_field("review"));
1885								}
1886								r#review_property = Some({
1887									struct DeserializeWith(Vec<ReviewProperty>);
1888									impl<'de> Deserialize<'de> for DeserializeWith {
1889										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1890										where
1891											D: Deserializer<'de>,
1892										{
1893											Ok(DeserializeWith(serde_with::As::<
1894												serde_with::OneOrMany<serde_with::Same>,
1895											>::deserialize(deserializer)?))
1896										}
1897									}
1898									match map.next_value::<DeserializeWith>() {
1899										Ok(deserialize_with) => deserialize_with.0,
1900										Err(err) => {
1901											return Err(err);
1902										}
1903									}
1904								});
1905							}
1906							Field::ServiceArea => {
1907								if r#service_area_property.is_some() {
1908									return Err(<A::Error as de::Error>::duplicate_field(
1909										"serviceArea",
1910									));
1911								}
1912								r#service_area_property = Some({
1913									struct DeserializeWith(Vec<ServiceAreaProperty>);
1914									impl<'de> Deserialize<'de> for DeserializeWith {
1915										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1916										where
1917											D: Deserializer<'de>,
1918										{
1919											Ok(DeserializeWith(serde_with::As::<
1920												serde_with::OneOrMany<serde_with::Same>,
1921											>::deserialize(deserializer)?))
1922										}
1923									}
1924									match map.next_value::<DeserializeWith>() {
1925										Ok(deserialize_with) => deserialize_with.0,
1926										Err(err) => {
1927											return Err(err);
1928										}
1929									}
1930								});
1931							}
1932							Field::ServiceAudience => {
1933								if r#service_audience_property.is_some() {
1934									return Err(<A::Error as de::Error>::duplicate_field(
1935										"serviceAudience",
1936									));
1937								}
1938								r#service_audience_property = Some({
1939									struct DeserializeWith(Vec<ServiceAudienceProperty>);
1940									impl<'de> Deserialize<'de> for DeserializeWith {
1941										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1942										where
1943											D: Deserializer<'de>,
1944										{
1945											Ok(DeserializeWith(serde_with::As::<
1946												serde_with::OneOrMany<serde_with::Same>,
1947											>::deserialize(deserializer)?))
1948										}
1949									}
1950									match map.next_value::<DeserializeWith>() {
1951										Ok(deserialize_with) => deserialize_with.0,
1952										Err(err) => {
1953											return Err(err);
1954										}
1955									}
1956								});
1957							}
1958							Field::ServiceOutput => {
1959								if r#service_output_property.is_some() {
1960									return Err(<A::Error as de::Error>::duplicate_field(
1961										"serviceOutput",
1962									));
1963								}
1964								r#service_output_property = Some({
1965									struct DeserializeWith(Vec<ServiceOutputProperty>);
1966									impl<'de> Deserialize<'de> for DeserializeWith {
1967										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1968										where
1969											D: Deserializer<'de>,
1970										{
1971											Ok(DeserializeWith(serde_with::As::<
1972												serde_with::OneOrMany<serde_with::Same>,
1973											>::deserialize(deserializer)?))
1974										}
1975									}
1976									match map.next_value::<DeserializeWith>() {
1977										Ok(deserialize_with) => deserialize_with.0,
1978										Err(err) => {
1979											return Err(err);
1980										}
1981									}
1982								});
1983							}
1984							Field::ServiceType => {
1985								if r#service_type_property.is_some() {
1986									return Err(<A::Error as de::Error>::duplicate_field(
1987										"serviceType",
1988									));
1989								}
1990								r#service_type_property = Some({
1991									struct DeserializeWith(Vec<ServiceTypeProperty>);
1992									impl<'de> Deserialize<'de> for DeserializeWith {
1993										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
1994										where
1995											D: Deserializer<'de>,
1996										{
1997											Ok(DeserializeWith(serde_with::As::<
1998												serde_with::OneOrMany<serde_with::Same>,
1999											>::deserialize(deserializer)?))
2000										}
2001									}
2002									match map.next_value::<DeserializeWith>() {
2003										Ok(deserialize_with) => deserialize_with.0,
2004										Err(err) => {
2005											return Err(err);
2006										}
2007									}
2008								});
2009							}
2010							Field::Slogan => {
2011								if r#slogan_property.is_some() {
2012									return Err(<A::Error as de::Error>::duplicate_field("slogan"));
2013								}
2014								r#slogan_property = Some({
2015									struct DeserializeWith(Vec<SloganProperty>);
2016									impl<'de> Deserialize<'de> for DeserializeWith {
2017										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2018										where
2019											D: Deserializer<'de>,
2020										{
2021											Ok(DeserializeWith(serde_with::As::<
2022												serde_with::OneOrMany<serde_with::Same>,
2023											>::deserialize(deserializer)?))
2024										}
2025									}
2026									match map.next_value::<DeserializeWith>() {
2027										Ok(deserialize_with) => deserialize_with.0,
2028										Err(err) => {
2029											return Err(err);
2030										}
2031									}
2032								});
2033							}
2034							Field::TermsOfService => {
2035								if r#terms_of_service_property.is_some() {
2036									return Err(<A::Error as de::Error>::duplicate_field(
2037										"termsOfService",
2038									));
2039								}
2040								r#terms_of_service_property = Some({
2041									struct DeserializeWith(Vec<TermsOfServiceProperty>);
2042									impl<'de> Deserialize<'de> for DeserializeWith {
2043										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2044										where
2045											D: Deserializer<'de>,
2046										{
2047											Ok(DeserializeWith(serde_with::As::<
2048												serde_with::OneOrMany<serde_with::Same>,
2049											>::deserialize(deserializer)?))
2050										}
2051									}
2052									match map.next_value::<DeserializeWith>() {
2053										Ok(deserialize_with) => deserialize_with.0,
2054										Err(err) => {
2055											return Err(err);
2056										}
2057									}
2058								});
2059							}
2060							Field::AdditionalType => {
2061								if r#additional_type_property.is_some() {
2062									return Err(<A::Error as de::Error>::duplicate_field(
2063										"additionalType",
2064									));
2065								}
2066								r#additional_type_property = Some({
2067									struct DeserializeWith(Vec<AdditionalTypeProperty>);
2068									impl<'de> Deserialize<'de> for DeserializeWith {
2069										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2070										where
2071											D: Deserializer<'de>,
2072										{
2073											Ok(DeserializeWith(serde_with::As::<
2074												serde_with::OneOrMany<serde_with::Same>,
2075											>::deserialize(deserializer)?))
2076										}
2077									}
2078									match map.next_value::<DeserializeWith>() {
2079										Ok(deserialize_with) => deserialize_with.0,
2080										Err(err) => {
2081											return Err(err);
2082										}
2083									}
2084								});
2085							}
2086							Field::AlternateName => {
2087								if r#alternate_name_property.is_some() {
2088									return Err(<A::Error as de::Error>::duplicate_field(
2089										"alternateName",
2090									));
2091								}
2092								r#alternate_name_property = Some({
2093									struct DeserializeWith(Vec<AlternateNameProperty>);
2094									impl<'de> Deserialize<'de> for DeserializeWith {
2095										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2096										where
2097											D: Deserializer<'de>,
2098										{
2099											Ok(DeserializeWith(serde_with::As::<
2100												serde_with::OneOrMany<serde_with::Same>,
2101											>::deserialize(deserializer)?))
2102										}
2103									}
2104									match map.next_value::<DeserializeWith>() {
2105										Ok(deserialize_with) => deserialize_with.0,
2106										Err(err) => {
2107											return Err(err);
2108										}
2109									}
2110								});
2111							}
2112							Field::Description => {
2113								if r#description_property.is_some() {
2114									return Err(<A::Error as de::Error>::duplicate_field(
2115										"description",
2116									));
2117								}
2118								r#description_property = Some({
2119									struct DeserializeWith(Vec<DescriptionProperty>);
2120									impl<'de> Deserialize<'de> for DeserializeWith {
2121										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2122										where
2123											D: Deserializer<'de>,
2124										{
2125											Ok(DeserializeWith(serde_with::As::<
2126												serde_with::OneOrMany<serde_with::Same>,
2127											>::deserialize(deserializer)?))
2128										}
2129									}
2130									match map.next_value::<DeserializeWith>() {
2131										Ok(deserialize_with) => deserialize_with.0,
2132										Err(err) => {
2133											return Err(err);
2134										}
2135									}
2136								});
2137							}
2138							Field::DisambiguatingDescription => {
2139								if r#disambiguating_description_property.is_some() {
2140									return Err(<A::Error as de::Error>::duplicate_field(
2141										"disambiguatingDescription",
2142									));
2143								}
2144								r#disambiguating_description_property = Some({
2145									struct DeserializeWith(Vec<DisambiguatingDescriptionProperty>);
2146									impl<'de> Deserialize<'de> for DeserializeWith {
2147										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2148										where
2149											D: Deserializer<'de>,
2150										{
2151											Ok(DeserializeWith(serde_with::As::<
2152												serde_with::OneOrMany<serde_with::Same>,
2153											>::deserialize(deserializer)?))
2154										}
2155									}
2156									match map.next_value::<DeserializeWith>() {
2157										Ok(deserialize_with) => deserialize_with.0,
2158										Err(err) => {
2159											return Err(err);
2160										}
2161									}
2162								});
2163							}
2164							Field::Identifier => {
2165								if r#identifier_property.is_some() {
2166									return Err(<A::Error as de::Error>::duplicate_field(
2167										"identifier",
2168									));
2169								}
2170								r#identifier_property = Some({
2171									struct DeserializeWith(Vec<IdentifierProperty>);
2172									impl<'de> Deserialize<'de> for DeserializeWith {
2173										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2174										where
2175											D: Deserializer<'de>,
2176										{
2177											Ok(DeserializeWith(serde_with::As::<
2178												serde_with::OneOrMany<serde_with::Same>,
2179											>::deserialize(deserializer)?))
2180										}
2181									}
2182									match map.next_value::<DeserializeWith>() {
2183										Ok(deserialize_with) => deserialize_with.0,
2184										Err(err) => {
2185											return Err(err);
2186										}
2187									}
2188								});
2189							}
2190							Field::Image => {
2191								if r#image_property.is_some() {
2192									return Err(<A::Error as de::Error>::duplicate_field("image"));
2193								}
2194								r#image_property = Some({
2195									struct DeserializeWith(Vec<ImageProperty>);
2196									impl<'de> Deserialize<'de> for DeserializeWith {
2197										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2198										where
2199											D: Deserializer<'de>,
2200										{
2201											Ok(DeserializeWith(serde_with::As::<
2202												serde_with::OneOrMany<serde_with::Same>,
2203											>::deserialize(deserializer)?))
2204										}
2205									}
2206									match map.next_value::<DeserializeWith>() {
2207										Ok(deserialize_with) => deserialize_with.0,
2208										Err(err) => {
2209											return Err(err);
2210										}
2211									}
2212								});
2213							}
2214							Field::MainEntityOfPage => {
2215								if r#main_entity_of_page_property.is_some() {
2216									return Err(<A::Error as de::Error>::duplicate_field(
2217										"mainEntityOfPage",
2218									));
2219								}
2220								r#main_entity_of_page_property = Some({
2221									struct DeserializeWith(Vec<MainEntityOfPageProperty>);
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::Name => {
2241								if r#name_property.is_some() {
2242									return Err(<A::Error as de::Error>::duplicate_field("name"));
2243								}
2244								r#name_property = Some({
2245									struct DeserializeWith(Vec<NameProperty>);
2246									impl<'de> Deserialize<'de> for DeserializeWith {
2247										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2248										where
2249											D: Deserializer<'de>,
2250										{
2251											Ok(DeserializeWith(serde_with::As::<
2252												serde_with::OneOrMany<serde_with::Same>,
2253											>::deserialize(deserializer)?))
2254										}
2255									}
2256									match map.next_value::<DeserializeWith>() {
2257										Ok(deserialize_with) => deserialize_with.0,
2258										Err(err) => {
2259											return Err(err);
2260										}
2261									}
2262								});
2263							}
2264							Field::PotentialAction => {
2265								if r#potential_action_property.is_some() {
2266									return Err(<A::Error as de::Error>::duplicate_field(
2267										"potentialAction",
2268									));
2269								}
2270								r#potential_action_property = Some({
2271									struct DeserializeWith(Vec<PotentialActionProperty>);
2272									impl<'de> Deserialize<'de> for DeserializeWith {
2273										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2274										where
2275											D: Deserializer<'de>,
2276										{
2277											Ok(DeserializeWith(serde_with::As::<
2278												serde_with::OneOrMany<serde_with::Same>,
2279											>::deserialize(deserializer)?))
2280										}
2281									}
2282									match map.next_value::<DeserializeWith>() {
2283										Ok(deserialize_with) => deserialize_with.0,
2284										Err(err) => {
2285											return Err(err);
2286										}
2287									}
2288								});
2289							}
2290							Field::SameAs => {
2291								if r#same_as_property.is_some() {
2292									return Err(<A::Error as de::Error>::duplicate_field("sameAs"));
2293								}
2294								r#same_as_property = Some({
2295									struct DeserializeWith(Vec<SameAsProperty>);
2296									impl<'de> Deserialize<'de> for DeserializeWith {
2297										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2298										where
2299											D: Deserializer<'de>,
2300										{
2301											Ok(DeserializeWith(serde_with::As::<
2302												serde_with::OneOrMany<serde_with::Same>,
2303											>::deserialize(deserializer)?))
2304										}
2305									}
2306									match map.next_value::<DeserializeWith>() {
2307										Ok(deserialize_with) => deserialize_with.0,
2308										Err(err) => {
2309											return Err(err);
2310										}
2311									}
2312								});
2313							}
2314							Field::SubjectOf => {
2315								if r#subject_of_property.is_some() {
2316									return Err(<A::Error as de::Error>::duplicate_field(
2317										"subjectOf",
2318									));
2319								}
2320								r#subject_of_property = Some({
2321									struct DeserializeWith(Vec<SubjectOfProperty>);
2322									impl<'de> Deserialize<'de> for DeserializeWith {
2323										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2324										where
2325											D: Deserializer<'de>,
2326										{
2327											Ok(DeserializeWith(serde_with::As::<
2328												serde_with::OneOrMany<serde_with::Same>,
2329											>::deserialize(deserializer)?))
2330										}
2331									}
2332									match map.next_value::<DeserializeWith>() {
2333										Ok(deserialize_with) => deserialize_with.0,
2334										Err(err) => {
2335											return Err(err);
2336										}
2337									}
2338								});
2339							}
2340							Field::Url => {
2341								if r#url_property.is_some() {
2342									return Err(<A::Error as de::Error>::duplicate_field("url"));
2343								}
2344								r#url_property = Some({
2345									struct DeserializeWith(Vec<UrlProperty>);
2346									impl<'de> Deserialize<'de> for DeserializeWith {
2347										fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
2348										where
2349											D: Deserializer<'de>,
2350										{
2351											Ok(DeserializeWith(serde_with::As::<
2352												serde_with::OneOrMany<serde_with::Same>,
2353											>::deserialize(deserializer)?))
2354										}
2355									}
2356									match map.next_value::<DeserializeWith>() {
2357										Ok(deserialize_with) => deserialize_with.0,
2358										Err(err) => {
2359											return Err(err);
2360										}
2361									}
2362								});
2363							}
2364							Field::Ignore => {
2365								let _ = map.next_value::<de::IgnoredAny>()?;
2366							}
2367						}
2368					}
2369					Ok(BrokerageAccount {
2370						r#annual_percentage_rate: r#annual_percentage_rate_property
2371							.unwrap_or_default(),
2372						r#fees_and_commissions_specification:
2373							r#fees_and_commissions_specification_property.unwrap_or_default(),
2374						r#interest_rate: r#interest_rate_property.unwrap_or_default(),
2375						r#amount: r#amount_property.unwrap_or_default(),
2376						r#aggregate_rating: r#aggregate_rating_property.unwrap_or_default(),
2377						r#area_served: r#area_served_property.unwrap_or_default(),
2378						r#audience: r#audience_property.unwrap_or_default(),
2379						r#available_channel: r#available_channel_property.unwrap_or_default(),
2380						r#award: r#award_property.unwrap_or_default(),
2381						r#brand: r#brand_property.unwrap_or_default(),
2382						r#broker: r#broker_property.unwrap_or_default(),
2383						r#category: r#category_property.unwrap_or_default(),
2384						r#has_offer_catalog: r#has_offer_catalog_property.unwrap_or_default(),
2385						r#hours_available: r#hours_available_property.unwrap_or_default(),
2386						r#is_related_to: r#is_related_to_property.unwrap_or_default(),
2387						r#is_similar_to: r#is_similar_to_property.unwrap_or_default(),
2388						r#logo: r#logo_property.unwrap_or_default(),
2389						r#offers: r#offers_property.unwrap_or_default(),
2390						r#produces: r#produces_property.unwrap_or_default(),
2391						r#provider: r#provider_property.unwrap_or_default(),
2392						r#provider_mobility: r#provider_mobility_property.unwrap_or_default(),
2393						r#review: r#review_property.unwrap_or_default(),
2394						r#service_area: r#service_area_property.unwrap_or_default(),
2395						r#service_audience: r#service_audience_property.unwrap_or_default(),
2396						r#service_output: r#service_output_property.unwrap_or_default(),
2397						r#service_type: r#service_type_property.unwrap_or_default(),
2398						r#slogan: r#slogan_property.unwrap_or_default(),
2399						r#terms_of_service: r#terms_of_service_property.unwrap_or_default(),
2400						r#additional_type: r#additional_type_property.unwrap_or_default(),
2401						r#alternate_name: r#alternate_name_property.unwrap_or_default(),
2402						r#description: r#description_property.unwrap_or_default(),
2403						r#disambiguating_description: r#disambiguating_description_property
2404							.unwrap_or_default(),
2405						r#identifier: r#identifier_property.unwrap_or_default(),
2406						r#image: r#image_property.unwrap_or_default(),
2407						r#main_entity_of_page: r#main_entity_of_page_property.unwrap_or_default(),
2408						r#name: r#name_property.unwrap_or_default(),
2409						r#potential_action: r#potential_action_property.unwrap_or_default(),
2410						r#same_as: r#same_as_property.unwrap_or_default(),
2411						r#subject_of: r#subject_of_property.unwrap_or_default(),
2412						r#url: r#url_property.unwrap_or_default(),
2413					})
2414				}
2415			}
2416			const FIELDS: &[&str] = &[
2417				"annualPercentageRate",
2418				"feesAndCommissionsSpecification",
2419				"interestRate",
2420				"amount",
2421				"aggregateRating",
2422				"areaServed",
2423				"audience",
2424				"availableChannel",
2425				"award",
2426				"brand",
2427				"broker",
2428				"category",
2429				"hasOfferCatalog",
2430				"hoursAvailable",
2431				"isRelatedTo",
2432				"isSimilarTo",
2433				"logo",
2434				"offers",
2435				"produces",
2436				"provider",
2437				"providerMobility",
2438				"review",
2439				"serviceArea",
2440				"serviceAudience",
2441				"serviceOutput",
2442				"serviceType",
2443				"slogan",
2444				"termsOfService",
2445				"additionalType",
2446				"alternateName",
2447				"description",
2448				"disambiguatingDescription",
2449				"identifier",
2450				"image",
2451				"mainEntityOfPage",
2452				"name",
2453				"potentialAction",
2454				"sameAs",
2455				"subjectOf",
2456				"url",
2457			];
2458			deserializer.deserialize_struct("BrokerageAccount", FIELDS, ClassVisitor)
2459		}
2460	}
2461}