1use super::*;
2#[cfg_attr(feature = "derive-debug", derive(Debug))]
4#[cfg_attr(feature = "derive-clone", derive(Clone))]
5pub struct BrokerageAccount {
6 pub r#annual_percentage_rate: Vec<AnnualPercentageRateProperty>,
8 pub r#fees_and_commissions_specification: Vec<FeesAndCommissionsSpecificationProperty>,
10 pub r#interest_rate: Vec<InterestRateProperty>,
12 pub r#amount: Vec<AmountProperty>,
14 pub r#aggregate_rating: Vec<AggregateRatingProperty>,
16 pub r#area_served: Vec<AreaServedProperty>,
18 pub r#audience: Vec<AudienceProperty>,
20 pub r#available_channel: Vec<AvailableChannelProperty>,
22 pub r#award: Vec<AwardProperty>,
24 pub r#brand: Vec<BrandProperty>,
26 pub r#broker: Vec<BrokerProperty>,
28 pub r#category: Vec<CategoryProperty>,
30 pub r#has_offer_catalog: Vec<HasOfferCatalogProperty>,
32 pub r#hours_available: Vec<HoursAvailableProperty>,
34 pub r#is_related_to: Vec<IsRelatedToProperty>,
36 pub r#is_similar_to: Vec<IsSimilarToProperty>,
38 pub r#logo: Vec<LogoProperty>,
40 pub r#offers: Vec<OffersProperty>,
42 #[deprecated = "This schema is superseded by <https://schema.org/serviceOutput>."]
44 pub r#produces: Vec<ProducesProperty>,
45 pub r#provider: Vec<ProviderProperty>,
47 pub r#provider_mobility: Vec<ProviderMobilityProperty>,
49 pub r#review: Vec<ReviewProperty>,
51 #[deprecated = "This schema is superseded by <https://schema.org/areaServed>."]
53 pub r#service_area: Vec<ServiceAreaProperty>,
54 #[deprecated = "This schema is superseded by <https://schema.org/audience>."]
56 pub r#service_audience: Vec<ServiceAudienceProperty>,
57 pub r#service_output: Vec<ServiceOutputProperty>,
59 pub r#service_type: Vec<ServiceTypeProperty>,
61 pub r#slogan: Vec<SloganProperty>,
63 pub r#terms_of_service: Vec<TermsOfServiceProperty>,
65 pub r#additional_type: Vec<AdditionalTypeProperty>,
67 pub r#alternate_name: Vec<AlternateNameProperty>,
69 pub r#description: Vec<DescriptionProperty>,
71 pub r#disambiguating_description: Vec<DisambiguatingDescriptionProperty>,
73 pub r#identifier: Vec<IdentifierProperty>,
75 pub r#image: Vec<ImageProperty>,
77 pub r#main_entity_of_page: Vec<MainEntityOfPageProperty>,
79 pub r#name: Vec<NameProperty>,
81 pub r#potential_action: Vec<PotentialActionProperty>,
83 pub r#same_as: Vec<SameAsProperty>,
85 pub r#subject_of: Vec<SubjectOfProperty>,
87 pub r#url: Vec<UrlProperty>,
89}
90pub 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}