1#[derive(Clone, Debug)]
2#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
3#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
4pub struct CheckoutCardPaymentMethodOptions {
5 pub capture_method: Option<CheckoutCardPaymentMethodOptionsCaptureMethod>,
7 pub installments: Option<stripe_shared::CheckoutCardInstallmentsOptions>,
8 pub request_extended_authorization:
10 Option<CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization>,
11 pub request_incremental_authorization:
13 Option<CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization>,
14 pub request_multicapture: Option<CheckoutCardPaymentMethodOptionsRequestMulticapture>,
16 pub request_overcapture: Option<CheckoutCardPaymentMethodOptionsRequestOvercapture>,
18 pub request_three_d_secure: CheckoutCardPaymentMethodOptionsRequestThreeDSecure,
23 pub restrictions:
24 Option<stripe_shared::PaymentPagesPrivateCardPaymentMethodOptionsResourceRestrictions>,
25 pub setup_future_usage: Option<CheckoutCardPaymentMethodOptionsSetupFutureUsage>,
34 pub statement_descriptor_suffix_kana: Option<String>,
39 pub statement_descriptor_suffix_kanji: Option<String>,
44}
45#[doc(hidden)]
46pub struct CheckoutCardPaymentMethodOptionsBuilder {
47 capture_method: Option<Option<CheckoutCardPaymentMethodOptionsCaptureMethod>>,
48 installments: Option<Option<stripe_shared::CheckoutCardInstallmentsOptions>>,
49 request_extended_authorization:
50 Option<Option<CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization>>,
51 request_incremental_authorization:
52 Option<Option<CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization>>,
53 request_multicapture: Option<Option<CheckoutCardPaymentMethodOptionsRequestMulticapture>>,
54 request_overcapture: Option<Option<CheckoutCardPaymentMethodOptionsRequestOvercapture>>,
55 request_three_d_secure: Option<CheckoutCardPaymentMethodOptionsRequestThreeDSecure>,
56 restrictions: Option<
57 Option<stripe_shared::PaymentPagesPrivateCardPaymentMethodOptionsResourceRestrictions>,
58 >,
59 setup_future_usage: Option<Option<CheckoutCardPaymentMethodOptionsSetupFutureUsage>>,
60 statement_descriptor_suffix_kana: Option<Option<String>>,
61 statement_descriptor_suffix_kanji: Option<Option<String>>,
62}
63
64#[allow(
65 unused_variables,
66 irrefutable_let_patterns,
67 clippy::let_unit_value,
68 clippy::match_single_binding,
69 clippy::single_match
70)]
71const _: () = {
72 use miniserde::de::{Map, Visitor};
73 use miniserde::json::Value;
74 use miniserde::{Deserialize, Result, make_place};
75 use stripe_types::miniserde_helpers::FromValueOpt;
76 use stripe_types::{MapBuilder, ObjectDeser};
77
78 make_place!(Place);
79
80 impl Deserialize for CheckoutCardPaymentMethodOptions {
81 fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
82 Place::new(out)
83 }
84 }
85
86 struct Builder<'a> {
87 out: &'a mut Option<CheckoutCardPaymentMethodOptions>,
88 builder: CheckoutCardPaymentMethodOptionsBuilder,
89 }
90
91 impl Visitor for Place<CheckoutCardPaymentMethodOptions> {
92 fn map(&mut self) -> Result<Box<dyn Map + '_>> {
93 Ok(Box::new(Builder {
94 out: &mut self.out,
95 builder: CheckoutCardPaymentMethodOptionsBuilder::deser_default(),
96 }))
97 }
98 }
99
100 impl MapBuilder for CheckoutCardPaymentMethodOptionsBuilder {
101 type Out = CheckoutCardPaymentMethodOptions;
102 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
103 Ok(match k {
104 "capture_method" => Deserialize::begin(&mut self.capture_method),
105 "installments" => Deserialize::begin(&mut self.installments),
106 "request_extended_authorization" => {
107 Deserialize::begin(&mut self.request_extended_authorization)
108 }
109 "request_incremental_authorization" => {
110 Deserialize::begin(&mut self.request_incremental_authorization)
111 }
112 "request_multicapture" => Deserialize::begin(&mut self.request_multicapture),
113 "request_overcapture" => Deserialize::begin(&mut self.request_overcapture),
114 "request_three_d_secure" => Deserialize::begin(&mut self.request_three_d_secure),
115 "restrictions" => Deserialize::begin(&mut self.restrictions),
116 "setup_future_usage" => Deserialize::begin(&mut self.setup_future_usage),
117 "statement_descriptor_suffix_kana" => {
118 Deserialize::begin(&mut self.statement_descriptor_suffix_kana)
119 }
120 "statement_descriptor_suffix_kanji" => {
121 Deserialize::begin(&mut self.statement_descriptor_suffix_kanji)
122 }
123 _ => <dyn Visitor>::ignore(),
124 })
125 }
126
127 fn deser_default() -> Self {
128 Self {
129 capture_method: Deserialize::default(),
130 installments: Deserialize::default(),
131 request_extended_authorization: Deserialize::default(),
132 request_incremental_authorization: Deserialize::default(),
133 request_multicapture: Deserialize::default(),
134 request_overcapture: Deserialize::default(),
135 request_three_d_secure: Deserialize::default(),
136 restrictions: Deserialize::default(),
137 setup_future_usage: Deserialize::default(),
138 statement_descriptor_suffix_kana: Deserialize::default(),
139 statement_descriptor_suffix_kanji: Deserialize::default(),
140 }
141 }
142
143 fn take_out(&mut self) -> Option<Self::Out> {
144 let (
145 Some(capture_method),
146 Some(installments),
147 Some(request_extended_authorization),
148 Some(request_incremental_authorization),
149 Some(request_multicapture),
150 Some(request_overcapture),
151 Some(request_three_d_secure),
152 Some(restrictions),
153 Some(setup_future_usage),
154 Some(statement_descriptor_suffix_kana),
155 Some(statement_descriptor_suffix_kanji),
156 ) = (
157 self.capture_method.take(),
158 self.installments,
159 self.request_extended_authorization.take(),
160 self.request_incremental_authorization.take(),
161 self.request_multicapture.take(),
162 self.request_overcapture.take(),
163 self.request_three_d_secure.take(),
164 self.restrictions.take(),
165 self.setup_future_usage.take(),
166 self.statement_descriptor_suffix_kana.take(),
167 self.statement_descriptor_suffix_kanji.take(),
168 )
169 else {
170 return None;
171 };
172 Some(Self::Out {
173 capture_method,
174 installments,
175 request_extended_authorization,
176 request_incremental_authorization,
177 request_multicapture,
178 request_overcapture,
179 request_three_d_secure,
180 restrictions,
181 setup_future_usage,
182 statement_descriptor_suffix_kana,
183 statement_descriptor_suffix_kanji,
184 })
185 }
186 }
187
188 impl Map for Builder<'_> {
189 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
190 self.builder.key(k)
191 }
192
193 fn finish(&mut self) -> Result<()> {
194 *self.out = self.builder.take_out();
195 Ok(())
196 }
197 }
198
199 impl ObjectDeser for CheckoutCardPaymentMethodOptions {
200 type Builder = CheckoutCardPaymentMethodOptionsBuilder;
201 }
202
203 impl FromValueOpt for CheckoutCardPaymentMethodOptions {
204 fn from_value(v: Value) -> Option<Self> {
205 let Value::Object(obj) = v else {
206 return None;
207 };
208 let mut b = CheckoutCardPaymentMethodOptionsBuilder::deser_default();
209 for (k, v) in obj {
210 match k.as_str() {
211 "capture_method" => b.capture_method = FromValueOpt::from_value(v),
212 "installments" => b.installments = FromValueOpt::from_value(v),
213 "request_extended_authorization" => {
214 b.request_extended_authorization = FromValueOpt::from_value(v)
215 }
216 "request_incremental_authorization" => {
217 b.request_incremental_authorization = FromValueOpt::from_value(v)
218 }
219 "request_multicapture" => b.request_multicapture = FromValueOpt::from_value(v),
220 "request_overcapture" => b.request_overcapture = FromValueOpt::from_value(v),
221 "request_three_d_secure" => {
222 b.request_three_d_secure = FromValueOpt::from_value(v)
223 }
224 "restrictions" => b.restrictions = FromValueOpt::from_value(v),
225 "setup_future_usage" => b.setup_future_usage = FromValueOpt::from_value(v),
226 "statement_descriptor_suffix_kana" => {
227 b.statement_descriptor_suffix_kana = FromValueOpt::from_value(v)
228 }
229 "statement_descriptor_suffix_kanji" => {
230 b.statement_descriptor_suffix_kanji = FromValueOpt::from_value(v)
231 }
232 _ => {}
233 }
234 }
235 b.take_out()
236 }
237 }
238};
239#[derive(Clone, Eq, PartialEq)]
241#[non_exhaustive]
242pub enum CheckoutCardPaymentMethodOptionsCaptureMethod {
243 Manual,
244 Unknown(String),
246}
247impl CheckoutCardPaymentMethodOptionsCaptureMethod {
248 pub fn as_str(&self) -> &str {
249 use CheckoutCardPaymentMethodOptionsCaptureMethod::*;
250 match self {
251 Manual => "manual",
252 Unknown(v) => v,
253 }
254 }
255}
256
257impl std::str::FromStr for CheckoutCardPaymentMethodOptionsCaptureMethod {
258 type Err = std::convert::Infallible;
259 fn from_str(s: &str) -> Result<Self, Self::Err> {
260 use CheckoutCardPaymentMethodOptionsCaptureMethod::*;
261 match s {
262 "manual" => Ok(Manual),
263 v => {
264 tracing::warn!(
265 "Unknown value '{}' for enum '{}'",
266 v,
267 "CheckoutCardPaymentMethodOptionsCaptureMethod"
268 );
269 Ok(Unknown(v.to_owned()))
270 }
271 }
272 }
273}
274impl std::fmt::Display for CheckoutCardPaymentMethodOptionsCaptureMethod {
275 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
276 f.write_str(self.as_str())
277 }
278}
279
280impl std::fmt::Debug for CheckoutCardPaymentMethodOptionsCaptureMethod {
281 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
282 f.write_str(self.as_str())
283 }
284}
285#[cfg(feature = "serialize")]
286impl serde::Serialize for CheckoutCardPaymentMethodOptionsCaptureMethod {
287 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
288 where
289 S: serde::Serializer,
290 {
291 serializer.serialize_str(self.as_str())
292 }
293}
294impl miniserde::Deserialize for CheckoutCardPaymentMethodOptionsCaptureMethod {
295 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
296 crate::Place::new(out)
297 }
298}
299
300impl miniserde::de::Visitor for crate::Place<CheckoutCardPaymentMethodOptionsCaptureMethod> {
301 fn string(&mut self, s: &str) -> miniserde::Result<()> {
302 use std::str::FromStr;
303 self.out =
304 Some(CheckoutCardPaymentMethodOptionsCaptureMethod::from_str(s).expect("infallible"));
305 Ok(())
306 }
307}
308
309stripe_types::impl_from_val_with_from_str!(CheckoutCardPaymentMethodOptionsCaptureMethod);
310#[cfg(feature = "deserialize")]
311impl<'de> serde::Deserialize<'de> for CheckoutCardPaymentMethodOptionsCaptureMethod {
312 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
313 use std::str::FromStr;
314 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
315 Ok(Self::from_str(&s).expect("infallible"))
316 }
317}
318#[derive(Clone, Eq, PartialEq)]
320#[non_exhaustive]
321pub enum CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization {
322 IfAvailable,
323 Never,
324 Unknown(String),
326}
327impl CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization {
328 pub fn as_str(&self) -> &str {
329 use CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization::*;
330 match self {
331 IfAvailable => "if_available",
332 Never => "never",
333 Unknown(v) => v,
334 }
335 }
336}
337
338impl std::str::FromStr for CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization {
339 type Err = std::convert::Infallible;
340 fn from_str(s: &str) -> Result<Self, Self::Err> {
341 use CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization::*;
342 match s {
343 "if_available" => Ok(IfAvailable),
344 "never" => Ok(Never),
345 v => {
346 tracing::warn!(
347 "Unknown value '{}' for enum '{}'",
348 v,
349 "CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization"
350 );
351 Ok(Unknown(v.to_owned()))
352 }
353 }
354 }
355}
356impl std::fmt::Display for CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization {
357 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
358 f.write_str(self.as_str())
359 }
360}
361
362impl std::fmt::Debug for CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization {
363 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
364 f.write_str(self.as_str())
365 }
366}
367#[cfg(feature = "serialize")]
368impl serde::Serialize for CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization {
369 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
370 where
371 S: serde::Serializer,
372 {
373 serializer.serialize_str(self.as_str())
374 }
375}
376impl miniserde::Deserialize for CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization {
377 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
378 crate::Place::new(out)
379 }
380}
381
382impl miniserde::de::Visitor
383 for crate::Place<CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization>
384{
385 fn string(&mut self, s: &str) -> miniserde::Result<()> {
386 use std::str::FromStr;
387 self.out = Some(
388 CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization::from_str(s)
389 .expect("infallible"),
390 );
391 Ok(())
392 }
393}
394
395stripe_types::impl_from_val_with_from_str!(
396 CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization
397);
398#[cfg(feature = "deserialize")]
399impl<'de> serde::Deserialize<'de> for CheckoutCardPaymentMethodOptionsRequestExtendedAuthorization {
400 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
401 use std::str::FromStr;
402 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
403 Ok(Self::from_str(&s).expect("infallible"))
404 }
405}
406#[derive(Clone, Eq, PartialEq)]
408#[non_exhaustive]
409pub enum CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization {
410 IfAvailable,
411 Never,
412 Unknown(String),
414}
415impl CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization {
416 pub fn as_str(&self) -> &str {
417 use CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization::*;
418 match self {
419 IfAvailable => "if_available",
420 Never => "never",
421 Unknown(v) => v,
422 }
423 }
424}
425
426impl std::str::FromStr for CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization {
427 type Err = std::convert::Infallible;
428 fn from_str(s: &str) -> Result<Self, Self::Err> {
429 use CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization::*;
430 match s {
431 "if_available" => Ok(IfAvailable),
432 "never" => Ok(Never),
433 v => {
434 tracing::warn!(
435 "Unknown value '{}' for enum '{}'",
436 v,
437 "CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization"
438 );
439 Ok(Unknown(v.to_owned()))
440 }
441 }
442 }
443}
444impl std::fmt::Display for CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization {
445 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
446 f.write_str(self.as_str())
447 }
448}
449
450impl std::fmt::Debug for CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization {
451 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
452 f.write_str(self.as_str())
453 }
454}
455#[cfg(feature = "serialize")]
456impl serde::Serialize for CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization {
457 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
458 where
459 S: serde::Serializer,
460 {
461 serializer.serialize_str(self.as_str())
462 }
463}
464impl miniserde::Deserialize for CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization {
465 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
466 crate::Place::new(out)
467 }
468}
469
470impl miniserde::de::Visitor
471 for crate::Place<CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization>
472{
473 fn string(&mut self, s: &str) -> miniserde::Result<()> {
474 use std::str::FromStr;
475 self.out = Some(
476 CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization::from_str(s)
477 .expect("infallible"),
478 );
479 Ok(())
480 }
481}
482
483stripe_types::impl_from_val_with_from_str!(
484 CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization
485);
486#[cfg(feature = "deserialize")]
487impl<'de> serde::Deserialize<'de>
488 for CheckoutCardPaymentMethodOptionsRequestIncrementalAuthorization
489{
490 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
491 use std::str::FromStr;
492 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
493 Ok(Self::from_str(&s).expect("infallible"))
494 }
495}
496#[derive(Clone, Eq, PartialEq)]
498#[non_exhaustive]
499pub enum CheckoutCardPaymentMethodOptionsRequestMulticapture {
500 IfAvailable,
501 Never,
502 Unknown(String),
504}
505impl CheckoutCardPaymentMethodOptionsRequestMulticapture {
506 pub fn as_str(&self) -> &str {
507 use CheckoutCardPaymentMethodOptionsRequestMulticapture::*;
508 match self {
509 IfAvailable => "if_available",
510 Never => "never",
511 Unknown(v) => v,
512 }
513 }
514}
515
516impl std::str::FromStr for CheckoutCardPaymentMethodOptionsRequestMulticapture {
517 type Err = std::convert::Infallible;
518 fn from_str(s: &str) -> Result<Self, Self::Err> {
519 use CheckoutCardPaymentMethodOptionsRequestMulticapture::*;
520 match s {
521 "if_available" => Ok(IfAvailable),
522 "never" => Ok(Never),
523 v => {
524 tracing::warn!(
525 "Unknown value '{}' for enum '{}'",
526 v,
527 "CheckoutCardPaymentMethodOptionsRequestMulticapture"
528 );
529 Ok(Unknown(v.to_owned()))
530 }
531 }
532 }
533}
534impl std::fmt::Display for CheckoutCardPaymentMethodOptionsRequestMulticapture {
535 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
536 f.write_str(self.as_str())
537 }
538}
539
540impl std::fmt::Debug for CheckoutCardPaymentMethodOptionsRequestMulticapture {
541 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
542 f.write_str(self.as_str())
543 }
544}
545#[cfg(feature = "serialize")]
546impl serde::Serialize for CheckoutCardPaymentMethodOptionsRequestMulticapture {
547 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
548 where
549 S: serde::Serializer,
550 {
551 serializer.serialize_str(self.as_str())
552 }
553}
554impl miniserde::Deserialize for CheckoutCardPaymentMethodOptionsRequestMulticapture {
555 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
556 crate::Place::new(out)
557 }
558}
559
560impl miniserde::de::Visitor for crate::Place<CheckoutCardPaymentMethodOptionsRequestMulticapture> {
561 fn string(&mut self, s: &str) -> miniserde::Result<()> {
562 use std::str::FromStr;
563 self.out = Some(
564 CheckoutCardPaymentMethodOptionsRequestMulticapture::from_str(s).expect("infallible"),
565 );
566 Ok(())
567 }
568}
569
570stripe_types::impl_from_val_with_from_str!(CheckoutCardPaymentMethodOptionsRequestMulticapture);
571#[cfg(feature = "deserialize")]
572impl<'de> serde::Deserialize<'de> for CheckoutCardPaymentMethodOptionsRequestMulticapture {
573 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
574 use std::str::FromStr;
575 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
576 Ok(Self::from_str(&s).expect("infallible"))
577 }
578}
579#[derive(Clone, Eq, PartialEq)]
581#[non_exhaustive]
582pub enum CheckoutCardPaymentMethodOptionsRequestOvercapture {
583 IfAvailable,
584 Never,
585 Unknown(String),
587}
588impl CheckoutCardPaymentMethodOptionsRequestOvercapture {
589 pub fn as_str(&self) -> &str {
590 use CheckoutCardPaymentMethodOptionsRequestOvercapture::*;
591 match self {
592 IfAvailable => "if_available",
593 Never => "never",
594 Unknown(v) => v,
595 }
596 }
597}
598
599impl std::str::FromStr for CheckoutCardPaymentMethodOptionsRequestOvercapture {
600 type Err = std::convert::Infallible;
601 fn from_str(s: &str) -> Result<Self, Self::Err> {
602 use CheckoutCardPaymentMethodOptionsRequestOvercapture::*;
603 match s {
604 "if_available" => Ok(IfAvailable),
605 "never" => Ok(Never),
606 v => {
607 tracing::warn!(
608 "Unknown value '{}' for enum '{}'",
609 v,
610 "CheckoutCardPaymentMethodOptionsRequestOvercapture"
611 );
612 Ok(Unknown(v.to_owned()))
613 }
614 }
615 }
616}
617impl std::fmt::Display for CheckoutCardPaymentMethodOptionsRequestOvercapture {
618 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
619 f.write_str(self.as_str())
620 }
621}
622
623impl std::fmt::Debug for CheckoutCardPaymentMethodOptionsRequestOvercapture {
624 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
625 f.write_str(self.as_str())
626 }
627}
628#[cfg(feature = "serialize")]
629impl serde::Serialize for CheckoutCardPaymentMethodOptionsRequestOvercapture {
630 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
631 where
632 S: serde::Serializer,
633 {
634 serializer.serialize_str(self.as_str())
635 }
636}
637impl miniserde::Deserialize for CheckoutCardPaymentMethodOptionsRequestOvercapture {
638 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
639 crate::Place::new(out)
640 }
641}
642
643impl miniserde::de::Visitor for crate::Place<CheckoutCardPaymentMethodOptionsRequestOvercapture> {
644 fn string(&mut self, s: &str) -> miniserde::Result<()> {
645 use std::str::FromStr;
646 self.out = Some(
647 CheckoutCardPaymentMethodOptionsRequestOvercapture::from_str(s).expect("infallible"),
648 );
649 Ok(())
650 }
651}
652
653stripe_types::impl_from_val_with_from_str!(CheckoutCardPaymentMethodOptionsRequestOvercapture);
654#[cfg(feature = "deserialize")]
655impl<'de> serde::Deserialize<'de> for CheckoutCardPaymentMethodOptionsRequestOvercapture {
656 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
657 use std::str::FromStr;
658 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
659 Ok(Self::from_str(&s).expect("infallible"))
660 }
661}
662#[derive(Clone, Eq, PartialEq)]
667#[non_exhaustive]
668pub enum CheckoutCardPaymentMethodOptionsRequestThreeDSecure {
669 Any,
670 Automatic,
671 Challenge,
672 Unknown(String),
674}
675impl CheckoutCardPaymentMethodOptionsRequestThreeDSecure {
676 pub fn as_str(&self) -> &str {
677 use CheckoutCardPaymentMethodOptionsRequestThreeDSecure::*;
678 match self {
679 Any => "any",
680 Automatic => "automatic",
681 Challenge => "challenge",
682 Unknown(v) => v,
683 }
684 }
685}
686
687impl std::str::FromStr for CheckoutCardPaymentMethodOptionsRequestThreeDSecure {
688 type Err = std::convert::Infallible;
689 fn from_str(s: &str) -> Result<Self, Self::Err> {
690 use CheckoutCardPaymentMethodOptionsRequestThreeDSecure::*;
691 match s {
692 "any" => Ok(Any),
693 "automatic" => Ok(Automatic),
694 "challenge" => Ok(Challenge),
695 v => {
696 tracing::warn!(
697 "Unknown value '{}' for enum '{}'",
698 v,
699 "CheckoutCardPaymentMethodOptionsRequestThreeDSecure"
700 );
701 Ok(Unknown(v.to_owned()))
702 }
703 }
704 }
705}
706impl std::fmt::Display for CheckoutCardPaymentMethodOptionsRequestThreeDSecure {
707 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
708 f.write_str(self.as_str())
709 }
710}
711
712impl std::fmt::Debug for CheckoutCardPaymentMethodOptionsRequestThreeDSecure {
713 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
714 f.write_str(self.as_str())
715 }
716}
717#[cfg(feature = "serialize")]
718impl serde::Serialize for CheckoutCardPaymentMethodOptionsRequestThreeDSecure {
719 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
720 where
721 S: serde::Serializer,
722 {
723 serializer.serialize_str(self.as_str())
724 }
725}
726impl miniserde::Deserialize for CheckoutCardPaymentMethodOptionsRequestThreeDSecure {
727 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
728 crate::Place::new(out)
729 }
730}
731
732impl miniserde::de::Visitor for crate::Place<CheckoutCardPaymentMethodOptionsRequestThreeDSecure> {
733 fn string(&mut self, s: &str) -> miniserde::Result<()> {
734 use std::str::FromStr;
735 self.out = Some(
736 CheckoutCardPaymentMethodOptionsRequestThreeDSecure::from_str(s).expect("infallible"),
737 );
738 Ok(())
739 }
740}
741
742stripe_types::impl_from_val_with_from_str!(CheckoutCardPaymentMethodOptionsRequestThreeDSecure);
743#[cfg(feature = "deserialize")]
744impl<'de> serde::Deserialize<'de> for CheckoutCardPaymentMethodOptionsRequestThreeDSecure {
745 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
746 use std::str::FromStr;
747 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
748 Ok(Self::from_str(&s).expect("infallible"))
749 }
750}
751#[derive(Clone, Eq, PartialEq)]
760#[non_exhaustive]
761pub enum CheckoutCardPaymentMethodOptionsSetupFutureUsage {
762 None,
763 OffSession,
764 OnSession,
765 Unknown(String),
767}
768impl CheckoutCardPaymentMethodOptionsSetupFutureUsage {
769 pub fn as_str(&self) -> &str {
770 use CheckoutCardPaymentMethodOptionsSetupFutureUsage::*;
771 match self {
772 None => "none",
773 OffSession => "off_session",
774 OnSession => "on_session",
775 Unknown(v) => v,
776 }
777 }
778}
779
780impl std::str::FromStr for CheckoutCardPaymentMethodOptionsSetupFutureUsage {
781 type Err = std::convert::Infallible;
782 fn from_str(s: &str) -> Result<Self, Self::Err> {
783 use CheckoutCardPaymentMethodOptionsSetupFutureUsage::*;
784 match s {
785 "none" => Ok(None),
786 "off_session" => Ok(OffSession),
787 "on_session" => Ok(OnSession),
788 v => {
789 tracing::warn!(
790 "Unknown value '{}' for enum '{}'",
791 v,
792 "CheckoutCardPaymentMethodOptionsSetupFutureUsage"
793 );
794 Ok(Unknown(v.to_owned()))
795 }
796 }
797 }
798}
799impl std::fmt::Display for CheckoutCardPaymentMethodOptionsSetupFutureUsage {
800 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
801 f.write_str(self.as_str())
802 }
803}
804
805impl std::fmt::Debug for CheckoutCardPaymentMethodOptionsSetupFutureUsage {
806 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
807 f.write_str(self.as_str())
808 }
809}
810#[cfg(feature = "serialize")]
811impl serde::Serialize for CheckoutCardPaymentMethodOptionsSetupFutureUsage {
812 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
813 where
814 S: serde::Serializer,
815 {
816 serializer.serialize_str(self.as_str())
817 }
818}
819impl miniserde::Deserialize for CheckoutCardPaymentMethodOptionsSetupFutureUsage {
820 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
821 crate::Place::new(out)
822 }
823}
824
825impl miniserde::de::Visitor for crate::Place<CheckoutCardPaymentMethodOptionsSetupFutureUsage> {
826 fn string(&mut self, s: &str) -> miniserde::Result<()> {
827 use std::str::FromStr;
828 self.out = Some(
829 CheckoutCardPaymentMethodOptionsSetupFutureUsage::from_str(s).expect("infallible"),
830 );
831 Ok(())
832 }
833}
834
835stripe_types::impl_from_val_with_from_str!(CheckoutCardPaymentMethodOptionsSetupFutureUsage);
836#[cfg(feature = "deserialize")]
837impl<'de> serde::Deserialize<'de> for CheckoutCardPaymentMethodOptionsSetupFutureUsage {
838 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
839 use std::str::FromStr;
840 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
841 Ok(Self::from_str(&s).expect("infallible"))
842 }
843}