stripe_shared/
payment_links_resource_shipping_address_collection.rs

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