1#[derive(Clone, Debug)]
2#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
3#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
4pub struct PaymentPagesCheckoutSessionShippingAddressCollection {
5 pub allowed_countries:
9 Vec<PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries>,
10}
11#[doc(hidden)]
12pub struct PaymentPagesCheckoutSessionShippingAddressCollectionBuilder {
13 allowed_countries:
14 Option<Vec<PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries>>,
15}
16
17#[allow(
18 unused_variables,
19 irrefutable_let_patterns,
20 clippy::let_unit_value,
21 clippy::match_single_binding,
22 clippy::single_match
23)]
24const _: () = {
25 use miniserde::de::{Map, Visitor};
26 use miniserde::json::Value;
27 use miniserde::{Deserialize, Result, make_place};
28 use stripe_types::miniserde_helpers::FromValueOpt;
29 use stripe_types::{MapBuilder, ObjectDeser};
30
31 make_place!(Place);
32
33 impl Deserialize for PaymentPagesCheckoutSessionShippingAddressCollection {
34 fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
35 Place::new(out)
36 }
37 }
38
39 struct Builder<'a> {
40 out: &'a mut Option<PaymentPagesCheckoutSessionShippingAddressCollection>,
41 builder: PaymentPagesCheckoutSessionShippingAddressCollectionBuilder,
42 }
43
44 impl Visitor for Place<PaymentPagesCheckoutSessionShippingAddressCollection> {
45 fn map(&mut self) -> Result<Box<dyn Map + '_>> {
46 Ok(Box::new(Builder {
47 out: &mut self.out,
48 builder: PaymentPagesCheckoutSessionShippingAddressCollectionBuilder::deser_default(
49 ),
50 }))
51 }
52 }
53
54 impl MapBuilder for PaymentPagesCheckoutSessionShippingAddressCollectionBuilder {
55 type Out = PaymentPagesCheckoutSessionShippingAddressCollection;
56 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
57 Ok(match k {
58 "allowed_countries" => Deserialize::begin(&mut self.allowed_countries),
59 _ => <dyn Visitor>::ignore(),
60 })
61 }
62
63 fn deser_default() -> Self {
64 Self { allowed_countries: Deserialize::default() }
65 }
66
67 fn take_out(&mut self) -> Option<Self::Out> {
68 let (Some(allowed_countries),) = (self.allowed_countries.take(),) else {
69 return None;
70 };
71 Some(Self::Out { allowed_countries })
72 }
73 }
74
75 impl Map for Builder<'_> {
76 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
77 self.builder.key(k)
78 }
79
80 fn finish(&mut self) -> Result<()> {
81 *self.out = self.builder.take_out();
82 Ok(())
83 }
84 }
85
86 impl ObjectDeser for PaymentPagesCheckoutSessionShippingAddressCollection {
87 type Builder = PaymentPagesCheckoutSessionShippingAddressCollectionBuilder;
88 }
89
90 impl FromValueOpt for PaymentPagesCheckoutSessionShippingAddressCollection {
91 fn from_value(v: Value) -> Option<Self> {
92 let Value::Object(obj) = v else {
93 return None;
94 };
95 let mut b =
96 PaymentPagesCheckoutSessionShippingAddressCollectionBuilder::deser_default();
97 for (k, v) in obj {
98 match k.as_str() {
99 "allowed_countries" => b.allowed_countries = FromValueOpt::from_value(v),
100 _ => {}
101 }
102 }
103 b.take_out()
104 }
105 }
106};
107#[derive(Clone, Eq, PartialEq)]
111#[non_exhaustive]
112pub enum PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
113 Ac,
114 Ad,
115 Ae,
116 Af,
117 Ag,
118 Ai,
119 Al,
120 Am,
121 Ao,
122 Aq,
123 Ar,
124 At,
125 Au,
126 Aw,
127 Ax,
128 Az,
129 Ba,
130 Bb,
131 Bd,
132 Be,
133 Bf,
134 Bg,
135 Bh,
136 Bi,
137 Bj,
138 Bl,
139 Bm,
140 Bn,
141 Bo,
142 Bq,
143 Br,
144 Bs,
145 Bt,
146 Bv,
147 Bw,
148 By,
149 Bz,
150 Ca,
151 Cd,
152 Cf,
153 Cg,
154 Ch,
155 Ci,
156 Ck,
157 Cl,
158 Cm,
159 Cn,
160 Co,
161 Cr,
162 Cv,
163 Cw,
164 Cy,
165 Cz,
166 De,
167 Dj,
168 Dk,
169 Dm,
170 Do,
171 Dz,
172 Ec,
173 Ee,
174 Eg,
175 Eh,
176 Er,
177 Es,
178 Et,
179 Fi,
180 Fj,
181 Fk,
182 Fo,
183 Fr,
184 Ga,
185 Gb,
186 Gd,
187 Ge,
188 Gf,
189 Gg,
190 Gh,
191 Gi,
192 Gl,
193 Gm,
194 Gn,
195 Gp,
196 Gq,
197 Gr,
198 Gs,
199 Gt,
200 Gu,
201 Gw,
202 Gy,
203 Hk,
204 Hn,
205 Hr,
206 Ht,
207 Hu,
208 Id,
209 Ie,
210 Il,
211 Im,
212 In,
213 Io,
214 Iq,
215 Is,
216 It,
217 Je,
218 Jm,
219 Jo,
220 Jp,
221 Ke,
222 Kg,
223 Kh,
224 Ki,
225 Km,
226 Kn,
227 Kr,
228 Kw,
229 Ky,
230 Kz,
231 La,
232 Lb,
233 Lc,
234 Li,
235 Lk,
236 Lr,
237 Ls,
238 Lt,
239 Lu,
240 Lv,
241 Ly,
242 Ma,
243 Mc,
244 Md,
245 Me,
246 Mf,
247 Mg,
248 Mk,
249 Ml,
250 Mm,
251 Mn,
252 Mo,
253 Mq,
254 Mr,
255 Ms,
256 Mt,
257 Mu,
258 Mv,
259 Mw,
260 Mx,
261 My,
262 Mz,
263 Na,
264 Nc,
265 Ne,
266 Ng,
267 Ni,
268 Nl,
269 No,
270 Np,
271 Nr,
272 Nu,
273 Nz,
274 Om,
275 Pa,
276 Pe,
277 Pf,
278 Pg,
279 Ph,
280 Pk,
281 Pl,
282 Pm,
283 Pn,
284 Pr,
285 Ps,
286 Pt,
287 Py,
288 Qa,
289 Re,
290 Ro,
291 Rs,
292 Ru,
293 Rw,
294 Sa,
295 Sb,
296 Sc,
297 Sd,
298 Se,
299 Sg,
300 Sh,
301 Si,
302 Sj,
303 Sk,
304 Sl,
305 Sm,
306 Sn,
307 So,
308 Sr,
309 Ss,
310 St,
311 Sv,
312 Sx,
313 Sz,
314 Ta,
315 Tc,
316 Td,
317 Tf,
318 Tg,
319 Th,
320 Tj,
321 Tk,
322 Tl,
323 Tm,
324 Tn,
325 To,
326 Tr,
327 Tt,
328 Tv,
329 Tw,
330 Tz,
331 Ua,
332 Ug,
333 Us,
334 Uy,
335 Uz,
336 Va,
337 Vc,
338 Ve,
339 Vg,
340 Vn,
341 Vu,
342 Wf,
343 Ws,
344 Xk,
345 Ye,
346 Yt,
347 Za,
348 Zm,
349 Zw,
350 Zz,
351 Unknown(String),
353}
354impl PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
355 pub fn as_str(&self) -> &str {
356 use PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::*;
357 match self {
358 Ac => "AC",
359 Ad => "AD",
360 Ae => "AE",
361 Af => "AF",
362 Ag => "AG",
363 Ai => "AI",
364 Al => "AL",
365 Am => "AM",
366 Ao => "AO",
367 Aq => "AQ",
368 Ar => "AR",
369 At => "AT",
370 Au => "AU",
371 Aw => "AW",
372 Ax => "AX",
373 Az => "AZ",
374 Ba => "BA",
375 Bb => "BB",
376 Bd => "BD",
377 Be => "BE",
378 Bf => "BF",
379 Bg => "BG",
380 Bh => "BH",
381 Bi => "BI",
382 Bj => "BJ",
383 Bl => "BL",
384 Bm => "BM",
385 Bn => "BN",
386 Bo => "BO",
387 Bq => "BQ",
388 Br => "BR",
389 Bs => "BS",
390 Bt => "BT",
391 Bv => "BV",
392 Bw => "BW",
393 By => "BY",
394 Bz => "BZ",
395 Ca => "CA",
396 Cd => "CD",
397 Cf => "CF",
398 Cg => "CG",
399 Ch => "CH",
400 Ci => "CI",
401 Ck => "CK",
402 Cl => "CL",
403 Cm => "CM",
404 Cn => "CN",
405 Co => "CO",
406 Cr => "CR",
407 Cv => "CV",
408 Cw => "CW",
409 Cy => "CY",
410 Cz => "CZ",
411 De => "DE",
412 Dj => "DJ",
413 Dk => "DK",
414 Dm => "DM",
415 Do => "DO",
416 Dz => "DZ",
417 Ec => "EC",
418 Ee => "EE",
419 Eg => "EG",
420 Eh => "EH",
421 Er => "ER",
422 Es => "ES",
423 Et => "ET",
424 Fi => "FI",
425 Fj => "FJ",
426 Fk => "FK",
427 Fo => "FO",
428 Fr => "FR",
429 Ga => "GA",
430 Gb => "GB",
431 Gd => "GD",
432 Ge => "GE",
433 Gf => "GF",
434 Gg => "GG",
435 Gh => "GH",
436 Gi => "GI",
437 Gl => "GL",
438 Gm => "GM",
439 Gn => "GN",
440 Gp => "GP",
441 Gq => "GQ",
442 Gr => "GR",
443 Gs => "GS",
444 Gt => "GT",
445 Gu => "GU",
446 Gw => "GW",
447 Gy => "GY",
448 Hk => "HK",
449 Hn => "HN",
450 Hr => "HR",
451 Ht => "HT",
452 Hu => "HU",
453 Id => "ID",
454 Ie => "IE",
455 Il => "IL",
456 Im => "IM",
457 In => "IN",
458 Io => "IO",
459 Iq => "IQ",
460 Is => "IS",
461 It => "IT",
462 Je => "JE",
463 Jm => "JM",
464 Jo => "JO",
465 Jp => "JP",
466 Ke => "KE",
467 Kg => "KG",
468 Kh => "KH",
469 Ki => "KI",
470 Km => "KM",
471 Kn => "KN",
472 Kr => "KR",
473 Kw => "KW",
474 Ky => "KY",
475 Kz => "KZ",
476 La => "LA",
477 Lb => "LB",
478 Lc => "LC",
479 Li => "LI",
480 Lk => "LK",
481 Lr => "LR",
482 Ls => "LS",
483 Lt => "LT",
484 Lu => "LU",
485 Lv => "LV",
486 Ly => "LY",
487 Ma => "MA",
488 Mc => "MC",
489 Md => "MD",
490 Me => "ME",
491 Mf => "MF",
492 Mg => "MG",
493 Mk => "MK",
494 Ml => "ML",
495 Mm => "MM",
496 Mn => "MN",
497 Mo => "MO",
498 Mq => "MQ",
499 Mr => "MR",
500 Ms => "MS",
501 Mt => "MT",
502 Mu => "MU",
503 Mv => "MV",
504 Mw => "MW",
505 Mx => "MX",
506 My => "MY",
507 Mz => "MZ",
508 Na => "NA",
509 Nc => "NC",
510 Ne => "NE",
511 Ng => "NG",
512 Ni => "NI",
513 Nl => "NL",
514 No => "NO",
515 Np => "NP",
516 Nr => "NR",
517 Nu => "NU",
518 Nz => "NZ",
519 Om => "OM",
520 Pa => "PA",
521 Pe => "PE",
522 Pf => "PF",
523 Pg => "PG",
524 Ph => "PH",
525 Pk => "PK",
526 Pl => "PL",
527 Pm => "PM",
528 Pn => "PN",
529 Pr => "PR",
530 Ps => "PS",
531 Pt => "PT",
532 Py => "PY",
533 Qa => "QA",
534 Re => "RE",
535 Ro => "RO",
536 Rs => "RS",
537 Ru => "RU",
538 Rw => "RW",
539 Sa => "SA",
540 Sb => "SB",
541 Sc => "SC",
542 Sd => "SD",
543 Se => "SE",
544 Sg => "SG",
545 Sh => "SH",
546 Si => "SI",
547 Sj => "SJ",
548 Sk => "SK",
549 Sl => "SL",
550 Sm => "SM",
551 Sn => "SN",
552 So => "SO",
553 Sr => "SR",
554 Ss => "SS",
555 St => "ST",
556 Sv => "SV",
557 Sx => "SX",
558 Sz => "SZ",
559 Ta => "TA",
560 Tc => "TC",
561 Td => "TD",
562 Tf => "TF",
563 Tg => "TG",
564 Th => "TH",
565 Tj => "TJ",
566 Tk => "TK",
567 Tl => "TL",
568 Tm => "TM",
569 Tn => "TN",
570 To => "TO",
571 Tr => "TR",
572 Tt => "TT",
573 Tv => "TV",
574 Tw => "TW",
575 Tz => "TZ",
576 Ua => "UA",
577 Ug => "UG",
578 Us => "US",
579 Uy => "UY",
580 Uz => "UZ",
581 Va => "VA",
582 Vc => "VC",
583 Ve => "VE",
584 Vg => "VG",
585 Vn => "VN",
586 Vu => "VU",
587 Wf => "WF",
588 Ws => "WS",
589 Xk => "XK",
590 Ye => "YE",
591 Yt => "YT",
592 Za => "ZA",
593 Zm => "ZM",
594 Zw => "ZW",
595 Zz => "ZZ",
596 Unknown(v) => v,
597 }
598 }
599}
600
601impl std::str::FromStr for PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
602 type Err = std::convert::Infallible;
603 fn from_str(s: &str) -> Result<Self, Self::Err> {
604 use PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::*;
605 match s {
606 "AC" => Ok(Ac),
607 "AD" => Ok(Ad),
608 "AE" => Ok(Ae),
609 "AF" => Ok(Af),
610 "AG" => Ok(Ag),
611 "AI" => Ok(Ai),
612 "AL" => Ok(Al),
613 "AM" => Ok(Am),
614 "AO" => Ok(Ao),
615 "AQ" => Ok(Aq),
616 "AR" => Ok(Ar),
617 "AT" => Ok(At),
618 "AU" => Ok(Au),
619 "AW" => Ok(Aw),
620 "AX" => Ok(Ax),
621 "AZ" => Ok(Az),
622 "BA" => Ok(Ba),
623 "BB" => Ok(Bb),
624 "BD" => Ok(Bd),
625 "BE" => Ok(Be),
626 "BF" => Ok(Bf),
627 "BG" => Ok(Bg),
628 "BH" => Ok(Bh),
629 "BI" => Ok(Bi),
630 "BJ" => Ok(Bj),
631 "BL" => Ok(Bl),
632 "BM" => Ok(Bm),
633 "BN" => Ok(Bn),
634 "BO" => Ok(Bo),
635 "BQ" => Ok(Bq),
636 "BR" => Ok(Br),
637 "BS" => Ok(Bs),
638 "BT" => Ok(Bt),
639 "BV" => Ok(Bv),
640 "BW" => Ok(Bw),
641 "BY" => Ok(By),
642 "BZ" => Ok(Bz),
643 "CA" => Ok(Ca),
644 "CD" => Ok(Cd),
645 "CF" => Ok(Cf),
646 "CG" => Ok(Cg),
647 "CH" => Ok(Ch),
648 "CI" => Ok(Ci),
649 "CK" => Ok(Ck),
650 "CL" => Ok(Cl),
651 "CM" => Ok(Cm),
652 "CN" => Ok(Cn),
653 "CO" => Ok(Co),
654 "CR" => Ok(Cr),
655 "CV" => Ok(Cv),
656 "CW" => Ok(Cw),
657 "CY" => Ok(Cy),
658 "CZ" => Ok(Cz),
659 "DE" => Ok(De),
660 "DJ" => Ok(Dj),
661 "DK" => Ok(Dk),
662 "DM" => Ok(Dm),
663 "DO" => Ok(Do),
664 "DZ" => Ok(Dz),
665 "EC" => Ok(Ec),
666 "EE" => Ok(Ee),
667 "EG" => Ok(Eg),
668 "EH" => Ok(Eh),
669 "ER" => Ok(Er),
670 "ES" => Ok(Es),
671 "ET" => Ok(Et),
672 "FI" => Ok(Fi),
673 "FJ" => Ok(Fj),
674 "FK" => Ok(Fk),
675 "FO" => Ok(Fo),
676 "FR" => Ok(Fr),
677 "GA" => Ok(Ga),
678 "GB" => Ok(Gb),
679 "GD" => Ok(Gd),
680 "GE" => Ok(Ge),
681 "GF" => Ok(Gf),
682 "GG" => Ok(Gg),
683 "GH" => Ok(Gh),
684 "GI" => Ok(Gi),
685 "GL" => Ok(Gl),
686 "GM" => Ok(Gm),
687 "GN" => Ok(Gn),
688 "GP" => Ok(Gp),
689 "GQ" => Ok(Gq),
690 "GR" => Ok(Gr),
691 "GS" => Ok(Gs),
692 "GT" => Ok(Gt),
693 "GU" => Ok(Gu),
694 "GW" => Ok(Gw),
695 "GY" => Ok(Gy),
696 "HK" => Ok(Hk),
697 "HN" => Ok(Hn),
698 "HR" => Ok(Hr),
699 "HT" => Ok(Ht),
700 "HU" => Ok(Hu),
701 "ID" => Ok(Id),
702 "IE" => Ok(Ie),
703 "IL" => Ok(Il),
704 "IM" => Ok(Im),
705 "IN" => Ok(In),
706 "IO" => Ok(Io),
707 "IQ" => Ok(Iq),
708 "IS" => Ok(Is),
709 "IT" => Ok(It),
710 "JE" => Ok(Je),
711 "JM" => Ok(Jm),
712 "JO" => Ok(Jo),
713 "JP" => Ok(Jp),
714 "KE" => Ok(Ke),
715 "KG" => Ok(Kg),
716 "KH" => Ok(Kh),
717 "KI" => Ok(Ki),
718 "KM" => Ok(Km),
719 "KN" => Ok(Kn),
720 "KR" => Ok(Kr),
721 "KW" => Ok(Kw),
722 "KY" => Ok(Ky),
723 "KZ" => Ok(Kz),
724 "LA" => Ok(La),
725 "LB" => Ok(Lb),
726 "LC" => Ok(Lc),
727 "LI" => Ok(Li),
728 "LK" => Ok(Lk),
729 "LR" => Ok(Lr),
730 "LS" => Ok(Ls),
731 "LT" => Ok(Lt),
732 "LU" => Ok(Lu),
733 "LV" => Ok(Lv),
734 "LY" => Ok(Ly),
735 "MA" => Ok(Ma),
736 "MC" => Ok(Mc),
737 "MD" => Ok(Md),
738 "ME" => Ok(Me),
739 "MF" => Ok(Mf),
740 "MG" => Ok(Mg),
741 "MK" => Ok(Mk),
742 "ML" => Ok(Ml),
743 "MM" => Ok(Mm),
744 "MN" => Ok(Mn),
745 "MO" => Ok(Mo),
746 "MQ" => Ok(Mq),
747 "MR" => Ok(Mr),
748 "MS" => Ok(Ms),
749 "MT" => Ok(Mt),
750 "MU" => Ok(Mu),
751 "MV" => Ok(Mv),
752 "MW" => Ok(Mw),
753 "MX" => Ok(Mx),
754 "MY" => Ok(My),
755 "MZ" => Ok(Mz),
756 "NA" => Ok(Na),
757 "NC" => Ok(Nc),
758 "NE" => Ok(Ne),
759 "NG" => Ok(Ng),
760 "NI" => Ok(Ni),
761 "NL" => Ok(Nl),
762 "NO" => Ok(No),
763 "NP" => Ok(Np),
764 "NR" => Ok(Nr),
765 "NU" => Ok(Nu),
766 "NZ" => Ok(Nz),
767 "OM" => Ok(Om),
768 "PA" => Ok(Pa),
769 "PE" => Ok(Pe),
770 "PF" => Ok(Pf),
771 "PG" => Ok(Pg),
772 "PH" => Ok(Ph),
773 "PK" => Ok(Pk),
774 "PL" => Ok(Pl),
775 "PM" => Ok(Pm),
776 "PN" => Ok(Pn),
777 "PR" => Ok(Pr),
778 "PS" => Ok(Ps),
779 "PT" => Ok(Pt),
780 "PY" => Ok(Py),
781 "QA" => Ok(Qa),
782 "RE" => Ok(Re),
783 "RO" => Ok(Ro),
784 "RS" => Ok(Rs),
785 "RU" => Ok(Ru),
786 "RW" => Ok(Rw),
787 "SA" => Ok(Sa),
788 "SB" => Ok(Sb),
789 "SC" => Ok(Sc),
790 "SD" => Ok(Sd),
791 "SE" => Ok(Se),
792 "SG" => Ok(Sg),
793 "SH" => Ok(Sh),
794 "SI" => Ok(Si),
795 "SJ" => Ok(Sj),
796 "SK" => Ok(Sk),
797 "SL" => Ok(Sl),
798 "SM" => Ok(Sm),
799 "SN" => Ok(Sn),
800 "SO" => Ok(So),
801 "SR" => Ok(Sr),
802 "SS" => Ok(Ss),
803 "ST" => Ok(St),
804 "SV" => Ok(Sv),
805 "SX" => Ok(Sx),
806 "SZ" => Ok(Sz),
807 "TA" => Ok(Ta),
808 "TC" => Ok(Tc),
809 "TD" => Ok(Td),
810 "TF" => Ok(Tf),
811 "TG" => Ok(Tg),
812 "TH" => Ok(Th),
813 "TJ" => Ok(Tj),
814 "TK" => Ok(Tk),
815 "TL" => Ok(Tl),
816 "TM" => Ok(Tm),
817 "TN" => Ok(Tn),
818 "TO" => Ok(To),
819 "TR" => Ok(Tr),
820 "TT" => Ok(Tt),
821 "TV" => Ok(Tv),
822 "TW" => Ok(Tw),
823 "TZ" => Ok(Tz),
824 "UA" => Ok(Ua),
825 "UG" => Ok(Ug),
826 "US" => Ok(Us),
827 "UY" => Ok(Uy),
828 "UZ" => Ok(Uz),
829 "VA" => Ok(Va),
830 "VC" => Ok(Vc),
831 "VE" => Ok(Ve),
832 "VG" => Ok(Vg),
833 "VN" => Ok(Vn),
834 "VU" => Ok(Vu),
835 "WF" => Ok(Wf),
836 "WS" => Ok(Ws),
837 "XK" => Ok(Xk),
838 "YE" => Ok(Ye),
839 "YT" => Ok(Yt),
840 "ZA" => Ok(Za),
841 "ZM" => Ok(Zm),
842 "ZW" => Ok(Zw),
843 "ZZ" => Ok(Zz),
844 v => Ok(Unknown(v.to_owned())),
845 }
846 }
847}
848impl std::fmt::Display for PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
849 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
850 f.write_str(self.as_str())
851 }
852}
853
854impl std::fmt::Debug for PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
855 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
856 f.write_str(self.as_str())
857 }
858}
859#[cfg(feature = "serialize")]
860impl serde::Serialize for PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries {
861 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
862 where
863 S: serde::Serializer,
864 {
865 serializer.serialize_str(self.as_str())
866 }
867}
868impl miniserde::Deserialize
869 for PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries
870{
871 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
872 crate::Place::new(out)
873 }
874}
875
876impl miniserde::de::Visitor
877 for crate::Place<PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries>
878{
879 fn string(&mut self, s: &str) -> miniserde::Result<()> {
880 use std::str::FromStr;
881 self.out = Some(
882 PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries::from_str(s)
883 .unwrap(),
884 );
885 Ok(())
886 }
887}
888
889stripe_types::impl_from_val_with_from_str!(
890 PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries
891);
892#[cfg(feature = "deserialize")]
893impl<'de> serde::Deserialize<'de>
894 for PaymentPagesCheckoutSessionShippingAddressCollectionAllowedCountries
895{
896 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
897 use std::str::FromStr;
898 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
899 Ok(Self::from_str(&s).unwrap())
900 }
901}