1#[derive(Clone, Debug)]
2#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
3#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
4pub struct PaymentLinksResourceShippingAddressCollection {
5 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#[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 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}