1#[derive(Clone, Debug)]
2#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
3#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
4pub struct TerminalConfigurationConfigurationResourceTipping {
5 pub aed:
6 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
7 pub aud:
8 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
9 pub bgn:
10 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
11 pub cad:
12 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
13 pub chf:
14 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
15 pub czk:
16 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
17 pub dkk:
18 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
19 pub eur:
20 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
21 pub gbp:
22 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
23 pub hkd:
24 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
25 pub huf:
26 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
27 pub jpy:
28 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
29 pub mxn:
30 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
31 pub myr:
32 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
33 pub nok:
34 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
35 pub nzd:
36 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
37 pub pln:
38 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
39 pub ron:
40 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
41 pub sek:
42 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
43 pub sgd:
44 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
45 pub usd:
46 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
47}
48#[doc(hidden)]
49pub struct TerminalConfigurationConfigurationResourceTippingBuilder {
50 aed: Option<
51 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
52 >,
53 aud: Option<
54 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
55 >,
56 bgn: Option<
57 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
58 >,
59 cad: Option<
60 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
61 >,
62 chf: Option<
63 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
64 >,
65 czk: Option<
66 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
67 >,
68 dkk: Option<
69 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
70 >,
71 eur: Option<
72 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
73 >,
74 gbp: Option<
75 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
76 >,
77 hkd: Option<
78 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
79 >,
80 huf: Option<
81 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
82 >,
83 jpy: Option<
84 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
85 >,
86 mxn: Option<
87 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
88 >,
89 myr: Option<
90 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
91 >,
92 nok: Option<
93 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
94 >,
95 nzd: Option<
96 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
97 >,
98 pln: Option<
99 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
100 >,
101 ron: Option<
102 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
103 >,
104 sek: Option<
105 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
106 >,
107 sgd: Option<
108 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
109 >,
110 usd: Option<
111 Option<stripe_terminal::TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
112 >,
113}
114
115#[allow(
116 unused_variables,
117 irrefutable_let_patterns,
118 clippy::let_unit_value,
119 clippy::match_single_binding,
120 clippy::single_match
121)]
122const _: () = {
123 use miniserde::de::{Map, Visitor};
124 use miniserde::json::Value;
125 use miniserde::{Deserialize, Result, make_place};
126 use stripe_types::miniserde_helpers::FromValueOpt;
127 use stripe_types::{MapBuilder, ObjectDeser};
128
129 make_place!(Place);
130
131 impl Deserialize for TerminalConfigurationConfigurationResourceTipping {
132 fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
133 Place::new(out)
134 }
135 }
136
137 struct Builder<'a> {
138 out: &'a mut Option<TerminalConfigurationConfigurationResourceTipping>,
139 builder: TerminalConfigurationConfigurationResourceTippingBuilder,
140 }
141
142 impl Visitor for Place<TerminalConfigurationConfigurationResourceTipping> {
143 fn map(&mut self) -> Result<Box<dyn Map + '_>> {
144 Ok(Box::new(Builder {
145 out: &mut self.out,
146 builder: TerminalConfigurationConfigurationResourceTippingBuilder::deser_default(),
147 }))
148 }
149 }
150
151 impl MapBuilder for TerminalConfigurationConfigurationResourceTippingBuilder {
152 type Out = TerminalConfigurationConfigurationResourceTipping;
153 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
154 Ok(match k {
155 "aed" => Deserialize::begin(&mut self.aed),
156 "aud" => Deserialize::begin(&mut self.aud),
157 "bgn" => Deserialize::begin(&mut self.bgn),
158 "cad" => Deserialize::begin(&mut self.cad),
159 "chf" => Deserialize::begin(&mut self.chf),
160 "czk" => Deserialize::begin(&mut self.czk),
161 "dkk" => Deserialize::begin(&mut self.dkk),
162 "eur" => Deserialize::begin(&mut self.eur),
163 "gbp" => Deserialize::begin(&mut self.gbp),
164 "hkd" => Deserialize::begin(&mut self.hkd),
165 "huf" => Deserialize::begin(&mut self.huf),
166 "jpy" => Deserialize::begin(&mut self.jpy),
167 "mxn" => Deserialize::begin(&mut self.mxn),
168 "myr" => Deserialize::begin(&mut self.myr),
169 "nok" => Deserialize::begin(&mut self.nok),
170 "nzd" => Deserialize::begin(&mut self.nzd),
171 "pln" => Deserialize::begin(&mut self.pln),
172 "ron" => Deserialize::begin(&mut self.ron),
173 "sek" => Deserialize::begin(&mut self.sek),
174 "sgd" => Deserialize::begin(&mut self.sgd),
175 "usd" => Deserialize::begin(&mut self.usd),
176
177 _ => <dyn Visitor>::ignore(),
178 })
179 }
180
181 fn deser_default() -> Self {
182 Self {
183 aed: Deserialize::default(),
184 aud: Deserialize::default(),
185 bgn: Deserialize::default(),
186 cad: Deserialize::default(),
187 chf: Deserialize::default(),
188 czk: Deserialize::default(),
189 dkk: Deserialize::default(),
190 eur: Deserialize::default(),
191 gbp: Deserialize::default(),
192 hkd: Deserialize::default(),
193 huf: Deserialize::default(),
194 jpy: Deserialize::default(),
195 mxn: Deserialize::default(),
196 myr: Deserialize::default(),
197 nok: Deserialize::default(),
198 nzd: Deserialize::default(),
199 pln: Deserialize::default(),
200 ron: Deserialize::default(),
201 sek: Deserialize::default(),
202 sgd: Deserialize::default(),
203 usd: Deserialize::default(),
204 }
205 }
206
207 fn take_out(&mut self) -> Option<Self::Out> {
208 let (
209 Some(aed),
210 Some(aud),
211 Some(bgn),
212 Some(cad),
213 Some(chf),
214 Some(czk),
215 Some(dkk),
216 Some(eur),
217 Some(gbp),
218 Some(hkd),
219 Some(huf),
220 Some(jpy),
221 Some(mxn),
222 Some(myr),
223 Some(nok),
224 Some(nzd),
225 Some(pln),
226 Some(ron),
227 Some(sek),
228 Some(sgd),
229 Some(usd),
230 ) = (
231 self.aed.take(),
232 self.aud.take(),
233 self.bgn.take(),
234 self.cad.take(),
235 self.chf.take(),
236 self.czk.take(),
237 self.dkk.take(),
238 self.eur.take(),
239 self.gbp.take(),
240 self.hkd.take(),
241 self.huf.take(),
242 self.jpy.take(),
243 self.mxn.take(),
244 self.myr.take(),
245 self.nok.take(),
246 self.nzd.take(),
247 self.pln.take(),
248 self.ron.take(),
249 self.sek.take(),
250 self.sgd.take(),
251 self.usd.take(),
252 )
253 else {
254 return None;
255 };
256 Some(Self::Out {
257 aed,
258 aud,
259 bgn,
260 cad,
261 chf,
262 czk,
263 dkk,
264 eur,
265 gbp,
266 hkd,
267 huf,
268 jpy,
269 mxn,
270 myr,
271 nok,
272 nzd,
273 pln,
274 ron,
275 sek,
276 sgd,
277 usd,
278 })
279 }
280 }
281
282 impl Map for Builder<'_> {
283 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
284 self.builder.key(k)
285 }
286
287 fn finish(&mut self) -> Result<()> {
288 *self.out = self.builder.take_out();
289 Ok(())
290 }
291 }
292
293 impl ObjectDeser for TerminalConfigurationConfigurationResourceTipping {
294 type Builder = TerminalConfigurationConfigurationResourceTippingBuilder;
295 }
296
297 impl FromValueOpt for TerminalConfigurationConfigurationResourceTipping {
298 fn from_value(v: Value) -> Option<Self> {
299 let Value::Object(obj) = v else {
300 return None;
301 };
302 let mut b = TerminalConfigurationConfigurationResourceTippingBuilder::deser_default();
303 for (k, v) in obj {
304 match k.as_str() {
305 "aed" => b.aed = FromValueOpt::from_value(v),
306 "aud" => b.aud = FromValueOpt::from_value(v),
307 "bgn" => b.bgn = FromValueOpt::from_value(v),
308 "cad" => b.cad = FromValueOpt::from_value(v),
309 "chf" => b.chf = FromValueOpt::from_value(v),
310 "czk" => b.czk = FromValueOpt::from_value(v),
311 "dkk" => b.dkk = FromValueOpt::from_value(v),
312 "eur" => b.eur = FromValueOpt::from_value(v),
313 "gbp" => b.gbp = FromValueOpt::from_value(v),
314 "hkd" => b.hkd = FromValueOpt::from_value(v),
315 "huf" => b.huf = FromValueOpt::from_value(v),
316 "jpy" => b.jpy = FromValueOpt::from_value(v),
317 "mxn" => b.mxn = FromValueOpt::from_value(v),
318 "myr" => b.myr = FromValueOpt::from_value(v),
319 "nok" => b.nok = FromValueOpt::from_value(v),
320 "nzd" => b.nzd = FromValueOpt::from_value(v),
321 "pln" => b.pln = FromValueOpt::from_value(v),
322 "ron" => b.ron = FromValueOpt::from_value(v),
323 "sek" => b.sek = FromValueOpt::from_value(v),
324 "sgd" => b.sgd = FromValueOpt::from_value(v),
325 "usd" => b.usd = FromValueOpt::from_value(v),
326
327 _ => {}
328 }
329 }
330 b.take_out()
331 }
332 }
333};