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