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