stripe_shared/
payment_intent_payment_method_options.rs

1#[derive(Clone, Debug)]
2#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
3#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
4pub struct PaymentIntentPaymentMethodOptions {
5    pub acss_debit: Option<stripe_shared::PaymentIntentPaymentMethodOptionsAcssDebit>,
6    pub affirm: Option<stripe_shared::PaymentMethodOptionsAffirm>,
7    pub afterpay_clearpay: Option<stripe_shared::PaymentMethodOptionsAfterpayClearpay>,
8    pub alipay: Option<stripe_shared::PaymentMethodOptionsAlipay>,
9    pub alma: Option<stripe_shared::PaymentMethodOptionsAlma>,
10    pub amazon_pay: Option<stripe_shared::PaymentMethodOptionsAmazonPay>,
11    pub au_becs_debit: Option<stripe_shared::PaymentIntentPaymentMethodOptionsAuBecsDebit>,
12    pub bacs_debit: Option<stripe_shared::PaymentIntentPaymentMethodOptionsBacsDebit>,
13    pub bancontact: Option<stripe_shared::PaymentMethodOptionsBancontact>,
14    pub billie: Option<stripe_shared::PaymentMethodOptionsBillie>,
15    pub blik: Option<stripe_shared::PaymentIntentPaymentMethodOptionsBlik>,
16    pub boleto: Option<stripe_shared::PaymentMethodOptionsBoleto>,
17    pub card: Option<stripe_shared::PaymentIntentPaymentMethodOptionsCard>,
18    pub card_present: Option<stripe_shared::PaymentMethodOptionsCardPresent>,
19    pub cashapp: Option<stripe_shared::PaymentMethodOptionsCashapp>,
20    pub crypto: Option<stripe_shared::PaymentMethodOptionsCrypto>,
21    pub customer_balance: Option<stripe_shared::PaymentMethodOptionsCustomerBalance>,
22    pub eps: Option<stripe_shared::PaymentIntentPaymentMethodOptionsEps>,
23    pub fpx: Option<stripe_shared::PaymentMethodOptionsFpx>,
24    pub giropay: Option<stripe_shared::PaymentMethodOptionsGiropay>,
25    pub grabpay: Option<stripe_shared::PaymentMethodOptionsGrabpay>,
26    pub ideal: Option<stripe_shared::PaymentMethodOptionsIdeal>,
27    pub interac_present: Option<stripe_shared::PaymentMethodOptionsInteracPresent>,
28    pub kakao_pay:
29        Option<stripe_shared::PaymentFlowsPrivatePaymentMethodsKakaoPayPaymentMethodOptions>,
30    pub klarna: Option<stripe_shared::PaymentMethodOptionsKlarna>,
31    pub konbini: Option<stripe_shared::PaymentMethodOptionsKonbini>,
32    pub kr_card: Option<stripe_shared::PaymentMethodOptionsKrCard>,
33    pub link: Option<stripe_shared::PaymentIntentPaymentMethodOptionsLink>,
34    pub mobilepay: Option<stripe_shared::PaymentIntentPaymentMethodOptionsMobilepay>,
35    pub multibanco: Option<stripe_shared::PaymentMethodOptionsMultibanco>,
36    pub naver_pay:
37        Option<stripe_shared::PaymentFlowsPrivatePaymentMethodsNaverPayPaymentMethodOptions>,
38    pub nz_bank_account: Option<stripe_shared::PaymentIntentPaymentMethodOptionsNzBankAccount>,
39    pub oxxo: Option<stripe_shared::PaymentMethodOptionsOxxo>,
40    pub p24: Option<stripe_shared::PaymentMethodOptionsP24>,
41    pub pay_by_bank: Option<stripe_shared::PaymentMethodOptionsPayByBank>,
42    pub payco: Option<stripe_shared::PaymentFlowsPrivatePaymentMethodsPaycoPaymentMethodOptions>,
43    pub paynow: Option<stripe_shared::PaymentMethodOptionsPaynow>,
44    pub paypal: Option<stripe_shared::PaymentMethodOptionsPaypal>,
45    pub pix: Option<stripe_shared::PaymentMethodOptionsPix>,
46    pub promptpay: Option<stripe_shared::PaymentMethodOptionsPromptpay>,
47    pub revolut_pay: Option<stripe_shared::PaymentMethodOptionsRevolutPay>,
48    pub samsung_pay:
49        Option<stripe_shared::PaymentFlowsPrivatePaymentMethodsSamsungPayPaymentMethodOptions>,
50    pub satispay: Option<stripe_shared::PaymentMethodOptionsSatispay>,
51    pub sepa_debit: Option<stripe_shared::PaymentIntentPaymentMethodOptionsSepaDebit>,
52    pub sofort: Option<stripe_shared::PaymentMethodOptionsSofort>,
53    pub swish: Option<stripe_shared::PaymentIntentPaymentMethodOptionsSwish>,
54    pub twint: Option<stripe_shared::PaymentMethodOptionsTwint>,
55    pub us_bank_account: Option<stripe_shared::PaymentIntentPaymentMethodOptionsUsBankAccount>,
56    pub wechat_pay: Option<stripe_shared::PaymentMethodOptionsWechatPay>,
57    pub zip: Option<stripe_shared::PaymentMethodOptionsZip>,
58}
59#[doc(hidden)]
60pub struct PaymentIntentPaymentMethodOptionsBuilder {
61    acss_debit: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsAcssDebit>>,
62    affirm: Option<Option<stripe_shared::PaymentMethodOptionsAffirm>>,
63    afterpay_clearpay: Option<Option<stripe_shared::PaymentMethodOptionsAfterpayClearpay>>,
64    alipay: Option<Option<stripe_shared::PaymentMethodOptionsAlipay>>,
65    alma: Option<Option<stripe_shared::PaymentMethodOptionsAlma>>,
66    amazon_pay: Option<Option<stripe_shared::PaymentMethodOptionsAmazonPay>>,
67    au_becs_debit: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsAuBecsDebit>>,
68    bacs_debit: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsBacsDebit>>,
69    bancontact: Option<Option<stripe_shared::PaymentMethodOptionsBancontact>>,
70    billie: Option<Option<stripe_shared::PaymentMethodOptionsBillie>>,
71    blik: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsBlik>>,
72    boleto: Option<Option<stripe_shared::PaymentMethodOptionsBoleto>>,
73    card: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsCard>>,
74    card_present: Option<Option<stripe_shared::PaymentMethodOptionsCardPresent>>,
75    cashapp: Option<Option<stripe_shared::PaymentMethodOptionsCashapp>>,
76    crypto: Option<Option<stripe_shared::PaymentMethodOptionsCrypto>>,
77    customer_balance: Option<Option<stripe_shared::PaymentMethodOptionsCustomerBalance>>,
78    eps: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsEps>>,
79    fpx: Option<Option<stripe_shared::PaymentMethodOptionsFpx>>,
80    giropay: Option<Option<stripe_shared::PaymentMethodOptionsGiropay>>,
81    grabpay: Option<Option<stripe_shared::PaymentMethodOptionsGrabpay>>,
82    ideal: Option<Option<stripe_shared::PaymentMethodOptionsIdeal>>,
83    interac_present: Option<Option<stripe_shared::PaymentMethodOptionsInteracPresent>>,
84    kakao_pay: Option<
85        Option<stripe_shared::PaymentFlowsPrivatePaymentMethodsKakaoPayPaymentMethodOptions>,
86    >,
87    klarna: Option<Option<stripe_shared::PaymentMethodOptionsKlarna>>,
88    konbini: Option<Option<stripe_shared::PaymentMethodOptionsKonbini>>,
89    kr_card: Option<Option<stripe_shared::PaymentMethodOptionsKrCard>>,
90    link: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsLink>>,
91    mobilepay: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsMobilepay>>,
92    multibanco: Option<Option<stripe_shared::PaymentMethodOptionsMultibanco>>,
93    naver_pay: Option<
94        Option<stripe_shared::PaymentFlowsPrivatePaymentMethodsNaverPayPaymentMethodOptions>,
95    >,
96    nz_bank_account: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsNzBankAccount>>,
97    oxxo: Option<Option<stripe_shared::PaymentMethodOptionsOxxo>>,
98    p24: Option<Option<stripe_shared::PaymentMethodOptionsP24>>,
99    pay_by_bank: Option<Option<stripe_shared::PaymentMethodOptionsPayByBank>>,
100    payco:
101        Option<Option<stripe_shared::PaymentFlowsPrivatePaymentMethodsPaycoPaymentMethodOptions>>,
102    paynow: Option<Option<stripe_shared::PaymentMethodOptionsPaynow>>,
103    paypal: Option<Option<stripe_shared::PaymentMethodOptionsPaypal>>,
104    pix: Option<Option<stripe_shared::PaymentMethodOptionsPix>>,
105    promptpay: Option<Option<stripe_shared::PaymentMethodOptionsPromptpay>>,
106    revolut_pay: Option<Option<stripe_shared::PaymentMethodOptionsRevolutPay>>,
107    samsung_pay: Option<
108        Option<stripe_shared::PaymentFlowsPrivatePaymentMethodsSamsungPayPaymentMethodOptions>,
109    >,
110    satispay: Option<Option<stripe_shared::PaymentMethodOptionsSatispay>>,
111    sepa_debit: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsSepaDebit>>,
112    sofort: Option<Option<stripe_shared::PaymentMethodOptionsSofort>>,
113    swish: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsSwish>>,
114    twint: Option<Option<stripe_shared::PaymentMethodOptionsTwint>>,
115    us_bank_account: Option<Option<stripe_shared::PaymentIntentPaymentMethodOptionsUsBankAccount>>,
116    wechat_pay: Option<Option<stripe_shared::PaymentMethodOptionsWechatPay>>,
117    zip: Option<Option<stripe_shared::PaymentMethodOptionsZip>>,
118}
119
120#[allow(
121    unused_variables,
122    irrefutable_let_patterns,
123    clippy::let_unit_value,
124    clippy::match_single_binding,
125    clippy::single_match
126)]
127const _: () = {
128    use miniserde::de::{Map, Visitor};
129    use miniserde::json::Value;
130    use miniserde::{make_place, Deserialize, Result};
131    use stripe_types::miniserde_helpers::FromValueOpt;
132    use stripe_types::{MapBuilder, ObjectDeser};
133
134    make_place!(Place);
135
136    impl Deserialize for PaymentIntentPaymentMethodOptions {
137        fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
138            Place::new(out)
139        }
140    }
141
142    struct Builder<'a> {
143        out: &'a mut Option<PaymentIntentPaymentMethodOptions>,
144        builder: PaymentIntentPaymentMethodOptionsBuilder,
145    }
146
147    impl Visitor for Place<PaymentIntentPaymentMethodOptions> {
148        fn map(&mut self) -> Result<Box<dyn Map + '_>> {
149            Ok(Box::new(Builder {
150                out: &mut self.out,
151                builder: PaymentIntentPaymentMethodOptionsBuilder::deser_default(),
152            }))
153        }
154    }
155
156    impl MapBuilder for PaymentIntentPaymentMethodOptionsBuilder {
157        type Out = PaymentIntentPaymentMethodOptions;
158        fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
159            Ok(match k {
160                "acss_debit" => Deserialize::begin(&mut self.acss_debit),
161                "affirm" => Deserialize::begin(&mut self.affirm),
162                "afterpay_clearpay" => Deserialize::begin(&mut self.afterpay_clearpay),
163                "alipay" => Deserialize::begin(&mut self.alipay),
164                "alma" => Deserialize::begin(&mut self.alma),
165                "amazon_pay" => Deserialize::begin(&mut self.amazon_pay),
166                "au_becs_debit" => Deserialize::begin(&mut self.au_becs_debit),
167                "bacs_debit" => Deserialize::begin(&mut self.bacs_debit),
168                "bancontact" => Deserialize::begin(&mut self.bancontact),
169                "billie" => Deserialize::begin(&mut self.billie),
170                "blik" => Deserialize::begin(&mut self.blik),
171                "boleto" => Deserialize::begin(&mut self.boleto),
172                "card" => Deserialize::begin(&mut self.card),
173                "card_present" => Deserialize::begin(&mut self.card_present),
174                "cashapp" => Deserialize::begin(&mut self.cashapp),
175                "crypto" => Deserialize::begin(&mut self.crypto),
176                "customer_balance" => Deserialize::begin(&mut self.customer_balance),
177                "eps" => Deserialize::begin(&mut self.eps),
178                "fpx" => Deserialize::begin(&mut self.fpx),
179                "giropay" => Deserialize::begin(&mut self.giropay),
180                "grabpay" => Deserialize::begin(&mut self.grabpay),
181                "ideal" => Deserialize::begin(&mut self.ideal),
182                "interac_present" => Deserialize::begin(&mut self.interac_present),
183                "kakao_pay" => Deserialize::begin(&mut self.kakao_pay),
184                "klarna" => Deserialize::begin(&mut self.klarna),
185                "konbini" => Deserialize::begin(&mut self.konbini),
186                "kr_card" => Deserialize::begin(&mut self.kr_card),
187                "link" => Deserialize::begin(&mut self.link),
188                "mobilepay" => Deserialize::begin(&mut self.mobilepay),
189                "multibanco" => Deserialize::begin(&mut self.multibanco),
190                "naver_pay" => Deserialize::begin(&mut self.naver_pay),
191                "nz_bank_account" => Deserialize::begin(&mut self.nz_bank_account),
192                "oxxo" => Deserialize::begin(&mut self.oxxo),
193                "p24" => Deserialize::begin(&mut self.p24),
194                "pay_by_bank" => Deserialize::begin(&mut self.pay_by_bank),
195                "payco" => Deserialize::begin(&mut self.payco),
196                "paynow" => Deserialize::begin(&mut self.paynow),
197                "paypal" => Deserialize::begin(&mut self.paypal),
198                "pix" => Deserialize::begin(&mut self.pix),
199                "promptpay" => Deserialize::begin(&mut self.promptpay),
200                "revolut_pay" => Deserialize::begin(&mut self.revolut_pay),
201                "samsung_pay" => Deserialize::begin(&mut self.samsung_pay),
202                "satispay" => Deserialize::begin(&mut self.satispay),
203                "sepa_debit" => Deserialize::begin(&mut self.sepa_debit),
204                "sofort" => Deserialize::begin(&mut self.sofort),
205                "swish" => Deserialize::begin(&mut self.swish),
206                "twint" => Deserialize::begin(&mut self.twint),
207                "us_bank_account" => Deserialize::begin(&mut self.us_bank_account),
208                "wechat_pay" => Deserialize::begin(&mut self.wechat_pay),
209                "zip" => Deserialize::begin(&mut self.zip),
210
211                _ => <dyn Visitor>::ignore(),
212            })
213        }
214
215        fn deser_default() -> Self {
216            Self {
217                acss_debit: Deserialize::default(),
218                affirm: Deserialize::default(),
219                afterpay_clearpay: Deserialize::default(),
220                alipay: Deserialize::default(),
221                alma: Deserialize::default(),
222                amazon_pay: Deserialize::default(),
223                au_becs_debit: Deserialize::default(),
224                bacs_debit: Deserialize::default(),
225                bancontact: Deserialize::default(),
226                billie: Deserialize::default(),
227                blik: Deserialize::default(),
228                boleto: Deserialize::default(),
229                card: Deserialize::default(),
230                card_present: Deserialize::default(),
231                cashapp: Deserialize::default(),
232                crypto: Deserialize::default(),
233                customer_balance: Deserialize::default(),
234                eps: Deserialize::default(),
235                fpx: Deserialize::default(),
236                giropay: Deserialize::default(),
237                grabpay: Deserialize::default(),
238                ideal: Deserialize::default(),
239                interac_present: Deserialize::default(),
240                kakao_pay: Deserialize::default(),
241                klarna: Deserialize::default(),
242                konbini: Deserialize::default(),
243                kr_card: Deserialize::default(),
244                link: Deserialize::default(),
245                mobilepay: Deserialize::default(),
246                multibanco: Deserialize::default(),
247                naver_pay: Deserialize::default(),
248                nz_bank_account: Deserialize::default(),
249                oxxo: Deserialize::default(),
250                p24: Deserialize::default(),
251                pay_by_bank: Deserialize::default(),
252                payco: Deserialize::default(),
253                paynow: Deserialize::default(),
254                paypal: Deserialize::default(),
255                pix: Deserialize::default(),
256                promptpay: Deserialize::default(),
257                revolut_pay: Deserialize::default(),
258                samsung_pay: Deserialize::default(),
259                satispay: Deserialize::default(),
260                sepa_debit: Deserialize::default(),
261                sofort: Deserialize::default(),
262                swish: Deserialize::default(),
263                twint: Deserialize::default(),
264                us_bank_account: Deserialize::default(),
265                wechat_pay: Deserialize::default(),
266                zip: Deserialize::default(),
267            }
268        }
269
270        fn take_out(&mut self) -> Option<Self::Out> {
271            let (
272                Some(acss_debit),
273                Some(affirm),
274                Some(afterpay_clearpay),
275                Some(alipay),
276                Some(alma),
277                Some(amazon_pay),
278                Some(au_becs_debit),
279                Some(bacs_debit),
280                Some(bancontact),
281                Some(billie),
282                Some(blik),
283                Some(boleto),
284                Some(card),
285                Some(card_present),
286                Some(cashapp),
287                Some(crypto),
288                Some(customer_balance),
289                Some(eps),
290                Some(fpx),
291                Some(giropay),
292                Some(grabpay),
293                Some(ideal),
294                Some(interac_present),
295                Some(kakao_pay),
296                Some(klarna),
297                Some(konbini),
298                Some(kr_card),
299                Some(link),
300                Some(mobilepay),
301                Some(multibanco),
302                Some(naver_pay),
303                Some(nz_bank_account),
304                Some(oxxo),
305                Some(p24),
306                Some(pay_by_bank),
307                Some(payco),
308                Some(paynow),
309                Some(paypal),
310                Some(pix),
311                Some(promptpay),
312                Some(revolut_pay),
313                Some(samsung_pay),
314                Some(satispay),
315                Some(sepa_debit),
316                Some(sofort),
317                Some(swish),
318                Some(twint),
319                Some(us_bank_account),
320                Some(wechat_pay),
321                Some(zip),
322            ) = (
323                self.acss_debit.take(),
324                self.affirm.take(),
325                self.afterpay_clearpay.take(),
326                self.alipay,
327                self.alma,
328                self.amazon_pay,
329                self.au_becs_debit.take(),
330                self.bacs_debit.take(),
331                self.bancontact,
332                self.billie,
333                self.blik,
334                self.boleto,
335                self.card.take(),
336                self.card_present,
337                self.cashapp,
338                self.crypto,
339                self.customer_balance.take(),
340                self.eps,
341                self.fpx,
342                self.giropay,
343                self.grabpay,
344                self.ideal,
345                self.interac_present,
346                self.kakao_pay,
347                self.klarna.take(),
348                self.konbini.take(),
349                self.kr_card,
350                self.link.take(),
351                self.mobilepay,
352                self.multibanco,
353                self.naver_pay,
354                self.nz_bank_account.take(),
355                self.oxxo,
356                self.p24,
357                self.pay_by_bank,
358                self.payco,
359                self.paynow,
360                self.paypal.take(),
361                self.pix,
362                self.promptpay,
363                self.revolut_pay,
364                self.samsung_pay,
365                self.satispay,
366                self.sepa_debit.take(),
367                self.sofort,
368                self.swish.take(),
369                self.twint,
370                self.us_bank_account.take(),
371                self.wechat_pay.take(),
372                self.zip,
373            )
374            else {
375                return None;
376            };
377            Some(Self::Out {
378                acss_debit,
379                affirm,
380                afterpay_clearpay,
381                alipay,
382                alma,
383                amazon_pay,
384                au_becs_debit,
385                bacs_debit,
386                bancontact,
387                billie,
388                blik,
389                boleto,
390                card,
391                card_present,
392                cashapp,
393                crypto,
394                customer_balance,
395                eps,
396                fpx,
397                giropay,
398                grabpay,
399                ideal,
400                interac_present,
401                kakao_pay,
402                klarna,
403                konbini,
404                kr_card,
405                link,
406                mobilepay,
407                multibanco,
408                naver_pay,
409                nz_bank_account,
410                oxxo,
411                p24,
412                pay_by_bank,
413                payco,
414                paynow,
415                paypal,
416                pix,
417                promptpay,
418                revolut_pay,
419                samsung_pay,
420                satispay,
421                sepa_debit,
422                sofort,
423                swish,
424                twint,
425                us_bank_account,
426                wechat_pay,
427                zip,
428            })
429        }
430    }
431
432    impl Map for Builder<'_> {
433        fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
434            self.builder.key(k)
435        }
436
437        fn finish(&mut self) -> Result<()> {
438            *self.out = self.builder.take_out();
439            Ok(())
440        }
441    }
442
443    impl ObjectDeser for PaymentIntentPaymentMethodOptions {
444        type Builder = PaymentIntentPaymentMethodOptionsBuilder;
445    }
446
447    impl FromValueOpt for PaymentIntentPaymentMethodOptions {
448        fn from_value(v: Value) -> Option<Self> {
449            let Value::Object(obj) = v else {
450                return None;
451            };
452            let mut b = PaymentIntentPaymentMethodOptionsBuilder::deser_default();
453            for (k, v) in obj {
454                match k.as_str() {
455                    "acss_debit" => b.acss_debit = FromValueOpt::from_value(v),
456                    "affirm" => b.affirm = FromValueOpt::from_value(v),
457                    "afterpay_clearpay" => b.afterpay_clearpay = FromValueOpt::from_value(v),
458                    "alipay" => b.alipay = FromValueOpt::from_value(v),
459                    "alma" => b.alma = FromValueOpt::from_value(v),
460                    "amazon_pay" => b.amazon_pay = FromValueOpt::from_value(v),
461                    "au_becs_debit" => b.au_becs_debit = FromValueOpt::from_value(v),
462                    "bacs_debit" => b.bacs_debit = FromValueOpt::from_value(v),
463                    "bancontact" => b.bancontact = FromValueOpt::from_value(v),
464                    "billie" => b.billie = FromValueOpt::from_value(v),
465                    "blik" => b.blik = FromValueOpt::from_value(v),
466                    "boleto" => b.boleto = FromValueOpt::from_value(v),
467                    "card" => b.card = FromValueOpt::from_value(v),
468                    "card_present" => b.card_present = FromValueOpt::from_value(v),
469                    "cashapp" => b.cashapp = FromValueOpt::from_value(v),
470                    "crypto" => b.crypto = FromValueOpt::from_value(v),
471                    "customer_balance" => b.customer_balance = FromValueOpt::from_value(v),
472                    "eps" => b.eps = FromValueOpt::from_value(v),
473                    "fpx" => b.fpx = FromValueOpt::from_value(v),
474                    "giropay" => b.giropay = FromValueOpt::from_value(v),
475                    "grabpay" => b.grabpay = FromValueOpt::from_value(v),
476                    "ideal" => b.ideal = FromValueOpt::from_value(v),
477                    "interac_present" => b.interac_present = FromValueOpt::from_value(v),
478                    "kakao_pay" => b.kakao_pay = FromValueOpt::from_value(v),
479                    "klarna" => b.klarna = FromValueOpt::from_value(v),
480                    "konbini" => b.konbini = FromValueOpt::from_value(v),
481                    "kr_card" => b.kr_card = FromValueOpt::from_value(v),
482                    "link" => b.link = FromValueOpt::from_value(v),
483                    "mobilepay" => b.mobilepay = FromValueOpt::from_value(v),
484                    "multibanco" => b.multibanco = FromValueOpt::from_value(v),
485                    "naver_pay" => b.naver_pay = FromValueOpt::from_value(v),
486                    "nz_bank_account" => b.nz_bank_account = FromValueOpt::from_value(v),
487                    "oxxo" => b.oxxo = FromValueOpt::from_value(v),
488                    "p24" => b.p24 = FromValueOpt::from_value(v),
489                    "pay_by_bank" => b.pay_by_bank = FromValueOpt::from_value(v),
490                    "payco" => b.payco = FromValueOpt::from_value(v),
491                    "paynow" => b.paynow = FromValueOpt::from_value(v),
492                    "paypal" => b.paypal = FromValueOpt::from_value(v),
493                    "pix" => b.pix = FromValueOpt::from_value(v),
494                    "promptpay" => b.promptpay = FromValueOpt::from_value(v),
495                    "revolut_pay" => b.revolut_pay = FromValueOpt::from_value(v),
496                    "samsung_pay" => b.samsung_pay = FromValueOpt::from_value(v),
497                    "satispay" => b.satispay = FromValueOpt::from_value(v),
498                    "sepa_debit" => b.sepa_debit = FromValueOpt::from_value(v),
499                    "sofort" => b.sofort = FromValueOpt::from_value(v),
500                    "swish" => b.swish = FromValueOpt::from_value(v),
501                    "twint" => b.twint = FromValueOpt::from_value(v),
502                    "us_bank_account" => b.us_bank_account = FromValueOpt::from_value(v),
503                    "wechat_pay" => b.wechat_pay = FromValueOpt::from_value(v),
504                    "zip" => b.zip = FromValueOpt::from_value(v),
505
506                    _ => {}
507                }
508            }
509            b.take_out()
510        }
511    }
512};