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