stripe_misc/
tax_product_registrations_resource_country_options.rs

1#[derive(Clone, Debug)]
2#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
3#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
4pub struct TaxProductRegistrationsResourceCountryOptions {
5    pub ae: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
6    pub al: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
7    pub am: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
8    pub ao: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
9    pub at: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
10    pub au: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
11    pub aw: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
12    pub az: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
13    pub ba: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
14    pub bb: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
15    pub bd: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
16    pub be: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
17    pub bf: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
18    pub bg: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
19    pub bh: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
20    pub bj: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
21    pub bs: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
22    pub by: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
23    pub ca: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsCanada>,
24    pub cd: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
25    pub ch: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
26    pub cl: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
27    pub cm: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
28    pub co: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
29    pub cr: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
30    pub cv: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
31    pub cy: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
32    pub cz: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
33    pub de: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
34    pub dk: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
35    pub ec: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
36    pub ee: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
37    pub eg: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
38    pub es: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
39    pub et: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
40    pub fi: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
41    pub fr: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
42    pub gb: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
43    pub ge: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
44    pub gn: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
45    pub gr: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
46    pub hr: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
47    pub hu: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
48    pub id: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
49    pub ie: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
50    #[cfg_attr(any(feature = "deserialize", feature = "serialize"), serde(rename = "in"))]
51    pub in_: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
52    pub is: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
53    pub it: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
54    pub jp: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
55    pub ke: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
56    pub kg: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
57    pub kh: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
58    pub kr: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
59    pub kz: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
60    pub la: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
61    pub lt: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
62    pub lu: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
63    pub lv: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
64    pub ma: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
65    pub md: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
66    pub me: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
67    pub mk: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
68    pub mr: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
69    pub mt: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
70    pub mx: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
71    pub my: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
72    pub ng: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
73    pub nl: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
74    pub no: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
75    pub np: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
76    pub nz: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
77    pub om: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
78    pub pe: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
79    pub ph: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
80    pub pl: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
81    pub pt: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
82    pub ro: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
83    pub rs: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
84    pub ru: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
85    pub sa: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
86    pub se: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
87    pub sg: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
88    pub si: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
89    pub sk: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>,
90    pub sn: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
91    pub sr: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
92    pub th: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsThailand>,
93    pub tj: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
94    pub tr: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
95    pub tz: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
96    pub ua: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
97    pub ug: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
98    pub us: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsUnitedStates>,
99    pub uy: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
100    pub uz: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
101    pub vn: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
102    pub za: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
103    pub zm: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>,
104    pub zw: Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>,
105}
106#[doc(hidden)]
107pub struct TaxProductRegistrationsResourceCountryOptionsBuilder {
108    ae: Option<
109        Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
110    >,
111    al: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
112    am: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
113    ao: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
114    at: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
115    au: Option<
116        Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
117    >,
118    aw: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
119    az: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
120    ba: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
121    bb: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
122    bd: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
123    be: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
124    bf: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
125    bg: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
126    bh: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
127    bj: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
128    bs: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
129    by: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
130    ca: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsCanada>>,
131    cd: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
132    ch: Option<
133        Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
134    >,
135    cl: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
136    cm: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
137    co: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
138    cr: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
139    cv: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
140    cy: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
141    cz: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
142    de: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
143    dk: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
144    ec: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
145    ee: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
146    eg: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
147    es: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
148    et: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
149    fi: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
150    fr: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
151    gb: Option<
152        Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
153    >,
154    ge: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
155    gn: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
156    gr: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
157    hr: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
158    hu: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
159    id: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
160    ie: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
161    in_: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
162    is: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
163    it: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
164    jp: Option<
165        Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
166    >,
167    ke: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
168    kg: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
169    kh: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
170    kr: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
171    kz: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
172    la: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
173    lt: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
174    lu: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
175    lv: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
176    ma: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
177    md: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
178    me: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
179    mk: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
180    mr: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
181    mt: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
182    mx: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
183    my: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
184    ng: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
185    nl: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
186    no: Option<
187        Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
188    >,
189    np: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
190    nz: Option<
191        Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
192    >,
193    om: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
194    pe: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
195    ph: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
196    pl: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
197    pt: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
198    ro: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
199    rs: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
200    ru: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
201    sa: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
202    se: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
203    sg: Option<
204        Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefaultInboundGoods>,
205    >,
206    si: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
207    sk: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsEurope>>,
208    sn: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
209    sr: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
210    th: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsThailand>>,
211    tj: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
212    tr: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
213    tz: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
214    ua: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
215    ug: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
216    us: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsUnitedStates>>,
217    uy: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
218    uz: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
219    vn: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
220    za: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
221    zm: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsSimplified>>,
222    zw: Option<Option<stripe_misc::TaxProductRegistrationsResourceCountryOptionsDefault>>,
223}
224
225#[allow(
226    unused_variables,
227    irrefutable_let_patterns,
228    clippy::let_unit_value,
229    clippy::match_single_binding,
230    clippy::single_match
231)]
232const _: () = {
233    use miniserde::de::{Map, Visitor};
234    use miniserde::json::Value;
235    use miniserde::{Deserialize, Result, make_place};
236    use stripe_types::miniserde_helpers::FromValueOpt;
237    use stripe_types::{MapBuilder, ObjectDeser};
238
239    make_place!(Place);
240
241    impl Deserialize for TaxProductRegistrationsResourceCountryOptions {
242        fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
243            Place::new(out)
244        }
245    }
246
247    struct Builder<'a> {
248        out: &'a mut Option<TaxProductRegistrationsResourceCountryOptions>,
249        builder: TaxProductRegistrationsResourceCountryOptionsBuilder,
250    }
251
252    impl Visitor for Place<TaxProductRegistrationsResourceCountryOptions> {
253        fn map(&mut self) -> Result<Box<dyn Map + '_>> {
254            Ok(Box::new(Builder {
255                out: &mut self.out,
256                builder: TaxProductRegistrationsResourceCountryOptionsBuilder::deser_default(),
257            }))
258        }
259    }
260
261    impl MapBuilder for TaxProductRegistrationsResourceCountryOptionsBuilder {
262        type Out = TaxProductRegistrationsResourceCountryOptions;
263        fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
264            Ok(match k {
265                "ae" => Deserialize::begin(&mut self.ae),
266                "al" => Deserialize::begin(&mut self.al),
267                "am" => Deserialize::begin(&mut self.am),
268                "ao" => Deserialize::begin(&mut self.ao),
269                "at" => Deserialize::begin(&mut self.at),
270                "au" => Deserialize::begin(&mut self.au),
271                "aw" => Deserialize::begin(&mut self.aw),
272                "az" => Deserialize::begin(&mut self.az),
273                "ba" => Deserialize::begin(&mut self.ba),
274                "bb" => Deserialize::begin(&mut self.bb),
275                "bd" => Deserialize::begin(&mut self.bd),
276                "be" => Deserialize::begin(&mut self.be),
277                "bf" => Deserialize::begin(&mut self.bf),
278                "bg" => Deserialize::begin(&mut self.bg),
279                "bh" => Deserialize::begin(&mut self.bh),
280                "bj" => Deserialize::begin(&mut self.bj),
281                "bs" => Deserialize::begin(&mut self.bs),
282                "by" => Deserialize::begin(&mut self.by),
283                "ca" => Deserialize::begin(&mut self.ca),
284                "cd" => Deserialize::begin(&mut self.cd),
285                "ch" => Deserialize::begin(&mut self.ch),
286                "cl" => Deserialize::begin(&mut self.cl),
287                "cm" => Deserialize::begin(&mut self.cm),
288                "co" => Deserialize::begin(&mut self.co),
289                "cr" => Deserialize::begin(&mut self.cr),
290                "cv" => Deserialize::begin(&mut self.cv),
291                "cy" => Deserialize::begin(&mut self.cy),
292                "cz" => Deserialize::begin(&mut self.cz),
293                "de" => Deserialize::begin(&mut self.de),
294                "dk" => Deserialize::begin(&mut self.dk),
295                "ec" => Deserialize::begin(&mut self.ec),
296                "ee" => Deserialize::begin(&mut self.ee),
297                "eg" => Deserialize::begin(&mut self.eg),
298                "es" => Deserialize::begin(&mut self.es),
299                "et" => Deserialize::begin(&mut self.et),
300                "fi" => Deserialize::begin(&mut self.fi),
301                "fr" => Deserialize::begin(&mut self.fr),
302                "gb" => Deserialize::begin(&mut self.gb),
303                "ge" => Deserialize::begin(&mut self.ge),
304                "gn" => Deserialize::begin(&mut self.gn),
305                "gr" => Deserialize::begin(&mut self.gr),
306                "hr" => Deserialize::begin(&mut self.hr),
307                "hu" => Deserialize::begin(&mut self.hu),
308                "id" => Deserialize::begin(&mut self.id),
309                "ie" => Deserialize::begin(&mut self.ie),
310                "in" => Deserialize::begin(&mut self.in_),
311                "is" => Deserialize::begin(&mut self.is),
312                "it" => Deserialize::begin(&mut self.it),
313                "jp" => Deserialize::begin(&mut self.jp),
314                "ke" => Deserialize::begin(&mut self.ke),
315                "kg" => Deserialize::begin(&mut self.kg),
316                "kh" => Deserialize::begin(&mut self.kh),
317                "kr" => Deserialize::begin(&mut self.kr),
318                "kz" => Deserialize::begin(&mut self.kz),
319                "la" => Deserialize::begin(&mut self.la),
320                "lt" => Deserialize::begin(&mut self.lt),
321                "lu" => Deserialize::begin(&mut self.lu),
322                "lv" => Deserialize::begin(&mut self.lv),
323                "ma" => Deserialize::begin(&mut self.ma),
324                "md" => Deserialize::begin(&mut self.md),
325                "me" => Deserialize::begin(&mut self.me),
326                "mk" => Deserialize::begin(&mut self.mk),
327                "mr" => Deserialize::begin(&mut self.mr),
328                "mt" => Deserialize::begin(&mut self.mt),
329                "mx" => Deserialize::begin(&mut self.mx),
330                "my" => Deserialize::begin(&mut self.my),
331                "ng" => Deserialize::begin(&mut self.ng),
332                "nl" => Deserialize::begin(&mut self.nl),
333                "no" => Deserialize::begin(&mut self.no),
334                "np" => Deserialize::begin(&mut self.np),
335                "nz" => Deserialize::begin(&mut self.nz),
336                "om" => Deserialize::begin(&mut self.om),
337                "pe" => Deserialize::begin(&mut self.pe),
338                "ph" => Deserialize::begin(&mut self.ph),
339                "pl" => Deserialize::begin(&mut self.pl),
340                "pt" => Deserialize::begin(&mut self.pt),
341                "ro" => Deserialize::begin(&mut self.ro),
342                "rs" => Deserialize::begin(&mut self.rs),
343                "ru" => Deserialize::begin(&mut self.ru),
344                "sa" => Deserialize::begin(&mut self.sa),
345                "se" => Deserialize::begin(&mut self.se),
346                "sg" => Deserialize::begin(&mut self.sg),
347                "si" => Deserialize::begin(&mut self.si),
348                "sk" => Deserialize::begin(&mut self.sk),
349                "sn" => Deserialize::begin(&mut self.sn),
350                "sr" => Deserialize::begin(&mut self.sr),
351                "th" => Deserialize::begin(&mut self.th),
352                "tj" => Deserialize::begin(&mut self.tj),
353                "tr" => Deserialize::begin(&mut self.tr),
354                "tz" => Deserialize::begin(&mut self.tz),
355                "ua" => Deserialize::begin(&mut self.ua),
356                "ug" => Deserialize::begin(&mut self.ug),
357                "us" => Deserialize::begin(&mut self.us),
358                "uy" => Deserialize::begin(&mut self.uy),
359                "uz" => Deserialize::begin(&mut self.uz),
360                "vn" => Deserialize::begin(&mut self.vn),
361                "za" => Deserialize::begin(&mut self.za),
362                "zm" => Deserialize::begin(&mut self.zm),
363                "zw" => Deserialize::begin(&mut self.zw),
364
365                _ => <dyn Visitor>::ignore(),
366            })
367        }
368
369        fn deser_default() -> Self {
370            Self {
371                ae: Deserialize::default(),
372                al: Deserialize::default(),
373                am: Deserialize::default(),
374                ao: Deserialize::default(),
375                at: Deserialize::default(),
376                au: Deserialize::default(),
377                aw: Deserialize::default(),
378                az: Deserialize::default(),
379                ba: Deserialize::default(),
380                bb: Deserialize::default(),
381                bd: Deserialize::default(),
382                be: Deserialize::default(),
383                bf: Deserialize::default(),
384                bg: Deserialize::default(),
385                bh: Deserialize::default(),
386                bj: Deserialize::default(),
387                bs: Deserialize::default(),
388                by: Deserialize::default(),
389                ca: Deserialize::default(),
390                cd: Deserialize::default(),
391                ch: Deserialize::default(),
392                cl: Deserialize::default(),
393                cm: Deserialize::default(),
394                co: Deserialize::default(),
395                cr: Deserialize::default(),
396                cv: Deserialize::default(),
397                cy: Deserialize::default(),
398                cz: Deserialize::default(),
399                de: Deserialize::default(),
400                dk: Deserialize::default(),
401                ec: Deserialize::default(),
402                ee: Deserialize::default(),
403                eg: Deserialize::default(),
404                es: Deserialize::default(),
405                et: Deserialize::default(),
406                fi: Deserialize::default(),
407                fr: Deserialize::default(),
408                gb: Deserialize::default(),
409                ge: Deserialize::default(),
410                gn: Deserialize::default(),
411                gr: Deserialize::default(),
412                hr: Deserialize::default(),
413                hu: Deserialize::default(),
414                id: Deserialize::default(),
415                ie: Deserialize::default(),
416                in_: Deserialize::default(),
417                is: Deserialize::default(),
418                it: Deserialize::default(),
419                jp: Deserialize::default(),
420                ke: Deserialize::default(),
421                kg: Deserialize::default(),
422                kh: Deserialize::default(),
423                kr: Deserialize::default(),
424                kz: Deserialize::default(),
425                la: Deserialize::default(),
426                lt: Deserialize::default(),
427                lu: Deserialize::default(),
428                lv: Deserialize::default(),
429                ma: Deserialize::default(),
430                md: Deserialize::default(),
431                me: Deserialize::default(),
432                mk: Deserialize::default(),
433                mr: Deserialize::default(),
434                mt: Deserialize::default(),
435                mx: Deserialize::default(),
436                my: Deserialize::default(),
437                ng: Deserialize::default(),
438                nl: Deserialize::default(),
439                no: Deserialize::default(),
440                np: Deserialize::default(),
441                nz: Deserialize::default(),
442                om: Deserialize::default(),
443                pe: Deserialize::default(),
444                ph: Deserialize::default(),
445                pl: Deserialize::default(),
446                pt: Deserialize::default(),
447                ro: Deserialize::default(),
448                rs: Deserialize::default(),
449                ru: Deserialize::default(),
450                sa: Deserialize::default(),
451                se: Deserialize::default(),
452                sg: Deserialize::default(),
453                si: Deserialize::default(),
454                sk: Deserialize::default(),
455                sn: Deserialize::default(),
456                sr: Deserialize::default(),
457                th: Deserialize::default(),
458                tj: Deserialize::default(),
459                tr: Deserialize::default(),
460                tz: Deserialize::default(),
461                ua: Deserialize::default(),
462                ug: Deserialize::default(),
463                us: Deserialize::default(),
464                uy: Deserialize::default(),
465                uz: Deserialize::default(),
466                vn: Deserialize::default(),
467                za: Deserialize::default(),
468                zm: Deserialize::default(),
469                zw: Deserialize::default(),
470            }
471        }
472
473        fn take_out(&mut self) -> Option<Self::Out> {
474            let (
475                Some(ae),
476                Some(al),
477                Some(am),
478                Some(ao),
479                Some(at),
480                Some(au),
481                Some(aw),
482                Some(az),
483                Some(ba),
484                Some(bb),
485                Some(bd),
486                Some(be),
487                Some(bf),
488                Some(bg),
489                Some(bh),
490                Some(bj),
491                Some(bs),
492                Some(by),
493                Some(ca),
494                Some(cd),
495                Some(ch),
496                Some(cl),
497                Some(cm),
498                Some(co),
499                Some(cr),
500                Some(cv),
501                Some(cy),
502                Some(cz),
503                Some(de),
504                Some(dk),
505                Some(ec),
506                Some(ee),
507                Some(eg),
508                Some(es),
509                Some(et),
510                Some(fi),
511                Some(fr),
512                Some(gb),
513                Some(ge),
514                Some(gn),
515                Some(gr),
516                Some(hr),
517                Some(hu),
518                Some(id),
519                Some(ie),
520                Some(in_),
521                Some(is),
522                Some(it),
523                Some(jp),
524                Some(ke),
525                Some(kg),
526                Some(kh),
527                Some(kr),
528                Some(kz),
529                Some(la),
530                Some(lt),
531                Some(lu),
532                Some(lv),
533                Some(ma),
534                Some(md),
535                Some(me),
536                Some(mk),
537                Some(mr),
538                Some(mt),
539                Some(mx),
540                Some(my),
541                Some(ng),
542                Some(nl),
543                Some(no),
544                Some(np),
545                Some(nz),
546                Some(om),
547                Some(pe),
548                Some(ph),
549                Some(pl),
550                Some(pt),
551                Some(ro),
552                Some(rs),
553                Some(ru),
554                Some(sa),
555                Some(se),
556                Some(sg),
557                Some(si),
558                Some(sk),
559                Some(sn),
560                Some(sr),
561                Some(th),
562                Some(tj),
563                Some(tr),
564                Some(tz),
565                Some(ua),
566                Some(ug),
567                Some(us),
568                Some(uy),
569                Some(uz),
570                Some(vn),
571                Some(za),
572                Some(zm),
573                Some(zw),
574            ) = (
575                self.ae,
576                self.al,
577                self.am,
578                self.ao,
579                self.at,
580                self.au,
581                self.aw,
582                self.az,
583                self.ba,
584                self.bb,
585                self.bd,
586                self.be,
587                self.bf,
588                self.bg,
589                self.bh,
590                self.bj,
591                self.bs,
592                self.by,
593                self.ca.take(),
594                self.cd,
595                self.ch,
596                self.cl,
597                self.cm,
598                self.co,
599                self.cr,
600                self.cv,
601                self.cy,
602                self.cz,
603                self.de,
604                self.dk,
605                self.ec,
606                self.ee,
607                self.eg,
608                self.es,
609                self.et,
610                self.fi,
611                self.fr,
612                self.gb,
613                self.ge,
614                self.gn,
615                self.gr,
616                self.hr,
617                self.hu,
618                self.id,
619                self.ie,
620                self.in_,
621                self.is,
622                self.it,
623                self.jp,
624                self.ke,
625                self.kg,
626                self.kh,
627                self.kr,
628                self.kz,
629                self.la,
630                self.lt,
631                self.lu,
632                self.lv,
633                self.ma,
634                self.md,
635                self.me,
636                self.mk,
637                self.mr,
638                self.mt,
639                self.mx,
640                self.my,
641                self.ng,
642                self.nl,
643                self.no,
644                self.np,
645                self.nz,
646                self.om,
647                self.pe,
648                self.ph,
649                self.pl,
650                self.pt,
651                self.ro,
652                self.rs,
653                self.ru,
654                self.sa,
655                self.se,
656                self.sg,
657                self.si,
658                self.sk,
659                self.sn,
660                self.sr,
661                self.th,
662                self.tj,
663                self.tr,
664                self.tz,
665                self.ua,
666                self.ug,
667                self.us.take(),
668                self.uy,
669                self.uz,
670                self.vn,
671                self.za,
672                self.zm,
673                self.zw,
674            )
675            else {
676                return None;
677            };
678            Some(Self::Out {
679                ae,
680                al,
681                am,
682                ao,
683                at,
684                au,
685                aw,
686                az,
687                ba,
688                bb,
689                bd,
690                be,
691                bf,
692                bg,
693                bh,
694                bj,
695                bs,
696                by,
697                ca,
698                cd,
699                ch,
700                cl,
701                cm,
702                co,
703                cr,
704                cv,
705                cy,
706                cz,
707                de,
708                dk,
709                ec,
710                ee,
711                eg,
712                es,
713                et,
714                fi,
715                fr,
716                gb,
717                ge,
718                gn,
719                gr,
720                hr,
721                hu,
722                id,
723                ie,
724                in_,
725                is,
726                it,
727                jp,
728                ke,
729                kg,
730                kh,
731                kr,
732                kz,
733                la,
734                lt,
735                lu,
736                lv,
737                ma,
738                md,
739                me,
740                mk,
741                mr,
742                mt,
743                mx,
744                my,
745                ng,
746                nl,
747                no,
748                np,
749                nz,
750                om,
751                pe,
752                ph,
753                pl,
754                pt,
755                ro,
756                rs,
757                ru,
758                sa,
759                se,
760                sg,
761                si,
762                sk,
763                sn,
764                sr,
765                th,
766                tj,
767                tr,
768                tz,
769                ua,
770                ug,
771                us,
772                uy,
773                uz,
774                vn,
775                za,
776                zm,
777                zw,
778            })
779        }
780    }
781
782    impl Map for Builder<'_> {
783        fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
784            self.builder.key(k)
785        }
786
787        fn finish(&mut self) -> Result<()> {
788            *self.out = self.builder.take_out();
789            Ok(())
790        }
791    }
792
793    impl ObjectDeser for TaxProductRegistrationsResourceCountryOptions {
794        type Builder = TaxProductRegistrationsResourceCountryOptionsBuilder;
795    }
796
797    impl FromValueOpt for TaxProductRegistrationsResourceCountryOptions {
798        fn from_value(v: Value) -> Option<Self> {
799            let Value::Object(obj) = v else {
800                return None;
801            };
802            let mut b = TaxProductRegistrationsResourceCountryOptionsBuilder::deser_default();
803            for (k, v) in obj {
804                match k.as_str() {
805                    "ae" => b.ae = FromValueOpt::from_value(v),
806                    "al" => b.al = FromValueOpt::from_value(v),
807                    "am" => b.am = FromValueOpt::from_value(v),
808                    "ao" => b.ao = FromValueOpt::from_value(v),
809                    "at" => b.at = FromValueOpt::from_value(v),
810                    "au" => b.au = FromValueOpt::from_value(v),
811                    "aw" => b.aw = FromValueOpt::from_value(v),
812                    "az" => b.az = FromValueOpt::from_value(v),
813                    "ba" => b.ba = FromValueOpt::from_value(v),
814                    "bb" => b.bb = FromValueOpt::from_value(v),
815                    "bd" => b.bd = FromValueOpt::from_value(v),
816                    "be" => b.be = FromValueOpt::from_value(v),
817                    "bf" => b.bf = FromValueOpt::from_value(v),
818                    "bg" => b.bg = FromValueOpt::from_value(v),
819                    "bh" => b.bh = FromValueOpt::from_value(v),
820                    "bj" => b.bj = FromValueOpt::from_value(v),
821                    "bs" => b.bs = FromValueOpt::from_value(v),
822                    "by" => b.by = FromValueOpt::from_value(v),
823                    "ca" => b.ca = FromValueOpt::from_value(v),
824                    "cd" => b.cd = FromValueOpt::from_value(v),
825                    "ch" => b.ch = FromValueOpt::from_value(v),
826                    "cl" => b.cl = FromValueOpt::from_value(v),
827                    "cm" => b.cm = FromValueOpt::from_value(v),
828                    "co" => b.co = FromValueOpt::from_value(v),
829                    "cr" => b.cr = FromValueOpt::from_value(v),
830                    "cv" => b.cv = FromValueOpt::from_value(v),
831                    "cy" => b.cy = FromValueOpt::from_value(v),
832                    "cz" => b.cz = FromValueOpt::from_value(v),
833                    "de" => b.de = FromValueOpt::from_value(v),
834                    "dk" => b.dk = FromValueOpt::from_value(v),
835                    "ec" => b.ec = FromValueOpt::from_value(v),
836                    "ee" => b.ee = FromValueOpt::from_value(v),
837                    "eg" => b.eg = FromValueOpt::from_value(v),
838                    "es" => b.es = FromValueOpt::from_value(v),
839                    "et" => b.et = FromValueOpt::from_value(v),
840                    "fi" => b.fi = FromValueOpt::from_value(v),
841                    "fr" => b.fr = FromValueOpt::from_value(v),
842                    "gb" => b.gb = FromValueOpt::from_value(v),
843                    "ge" => b.ge = FromValueOpt::from_value(v),
844                    "gn" => b.gn = FromValueOpt::from_value(v),
845                    "gr" => b.gr = FromValueOpt::from_value(v),
846                    "hr" => b.hr = FromValueOpt::from_value(v),
847                    "hu" => b.hu = FromValueOpt::from_value(v),
848                    "id" => b.id = FromValueOpt::from_value(v),
849                    "ie" => b.ie = FromValueOpt::from_value(v),
850                    "in" => b.in_ = FromValueOpt::from_value(v),
851                    "is" => b.is = FromValueOpt::from_value(v),
852                    "it" => b.it = FromValueOpt::from_value(v),
853                    "jp" => b.jp = FromValueOpt::from_value(v),
854                    "ke" => b.ke = FromValueOpt::from_value(v),
855                    "kg" => b.kg = FromValueOpt::from_value(v),
856                    "kh" => b.kh = FromValueOpt::from_value(v),
857                    "kr" => b.kr = FromValueOpt::from_value(v),
858                    "kz" => b.kz = FromValueOpt::from_value(v),
859                    "la" => b.la = FromValueOpt::from_value(v),
860                    "lt" => b.lt = FromValueOpt::from_value(v),
861                    "lu" => b.lu = FromValueOpt::from_value(v),
862                    "lv" => b.lv = FromValueOpt::from_value(v),
863                    "ma" => b.ma = FromValueOpt::from_value(v),
864                    "md" => b.md = FromValueOpt::from_value(v),
865                    "me" => b.me = FromValueOpt::from_value(v),
866                    "mk" => b.mk = FromValueOpt::from_value(v),
867                    "mr" => b.mr = FromValueOpt::from_value(v),
868                    "mt" => b.mt = FromValueOpt::from_value(v),
869                    "mx" => b.mx = FromValueOpt::from_value(v),
870                    "my" => b.my = FromValueOpt::from_value(v),
871                    "ng" => b.ng = FromValueOpt::from_value(v),
872                    "nl" => b.nl = FromValueOpt::from_value(v),
873                    "no" => b.no = FromValueOpt::from_value(v),
874                    "np" => b.np = FromValueOpt::from_value(v),
875                    "nz" => b.nz = FromValueOpt::from_value(v),
876                    "om" => b.om = FromValueOpt::from_value(v),
877                    "pe" => b.pe = FromValueOpt::from_value(v),
878                    "ph" => b.ph = FromValueOpt::from_value(v),
879                    "pl" => b.pl = FromValueOpt::from_value(v),
880                    "pt" => b.pt = FromValueOpt::from_value(v),
881                    "ro" => b.ro = FromValueOpt::from_value(v),
882                    "rs" => b.rs = FromValueOpt::from_value(v),
883                    "ru" => b.ru = FromValueOpt::from_value(v),
884                    "sa" => b.sa = FromValueOpt::from_value(v),
885                    "se" => b.se = FromValueOpt::from_value(v),
886                    "sg" => b.sg = FromValueOpt::from_value(v),
887                    "si" => b.si = FromValueOpt::from_value(v),
888                    "sk" => b.sk = FromValueOpt::from_value(v),
889                    "sn" => b.sn = FromValueOpt::from_value(v),
890                    "sr" => b.sr = FromValueOpt::from_value(v),
891                    "th" => b.th = FromValueOpt::from_value(v),
892                    "tj" => b.tj = FromValueOpt::from_value(v),
893                    "tr" => b.tr = FromValueOpt::from_value(v),
894                    "tz" => b.tz = FromValueOpt::from_value(v),
895                    "ua" => b.ua = FromValueOpt::from_value(v),
896                    "ug" => b.ug = FromValueOpt::from_value(v),
897                    "us" => b.us = FromValueOpt::from_value(v),
898                    "uy" => b.uy = FromValueOpt::from_value(v),
899                    "uz" => b.uz = FromValueOpt::from_value(v),
900                    "vn" => b.vn = FromValueOpt::from_value(v),
901                    "za" => b.za = FromValueOpt::from_value(v),
902                    "zm" => b.zm = FromValueOpt::from_value(v),
903                    "zw" => b.zw = FromValueOpt::from_value(v),
904
905                    _ => {}
906                }
907            }
908            b.take_out()
909        }
910    }
911};