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