stripe_terminal/terminal_configuration/
types.rs1#[derive(Clone, Debug)]
6#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
7pub struct TerminalConfiguration {
8 pub bbpos_wisepad3:
9 Option<stripe_terminal::TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
10 pub bbpos_wisepos_e:
11 Option<stripe_terminal::TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
12 pub id: stripe_terminal::TerminalConfigurationId,
14 pub is_account_default: Option<bool>,
16 pub livemode: bool,
18 pub name: Option<String>,
20 pub offline: Option<stripe_terminal::TerminalConfigurationConfigurationResourceOfflineConfig>,
21 pub reboot_window:
22 Option<stripe_terminal::TerminalConfigurationConfigurationResourceRebootWindow>,
23 pub stripe_s700:
24 Option<stripe_terminal::TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
25 pub tipping: Option<stripe_terminal::TerminalConfigurationConfigurationResourceTipping>,
26 pub verifone_p400:
27 Option<stripe_terminal::TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
28 pub wifi: Option<stripe_terminal::TerminalConfigurationConfigurationResourceWifiConfig>,
29}
30#[doc(hidden)]
31pub struct TerminalConfigurationBuilder {
32 bbpos_wisepad3: Option<
33 Option<stripe_terminal::TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
34 >,
35 bbpos_wisepos_e: Option<
36 Option<stripe_terminal::TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
37 >,
38 id: Option<stripe_terminal::TerminalConfigurationId>,
39 is_account_default: Option<Option<bool>>,
40 livemode: Option<bool>,
41 name: Option<Option<String>>,
42 offline:
43 Option<Option<stripe_terminal::TerminalConfigurationConfigurationResourceOfflineConfig>>,
44 reboot_window:
45 Option<Option<stripe_terminal::TerminalConfigurationConfigurationResourceRebootWindow>>,
46 stripe_s700: Option<
47 Option<stripe_terminal::TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
48 >,
49 tipping: Option<Option<stripe_terminal::TerminalConfigurationConfigurationResourceTipping>>,
50 verifone_p400: Option<
51 Option<stripe_terminal::TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
52 >,
53 wifi: Option<Option<stripe_terminal::TerminalConfigurationConfigurationResourceWifiConfig>>,
54}
55
56#[allow(
57 unused_variables,
58 irrefutable_let_patterns,
59 clippy::let_unit_value,
60 clippy::match_single_binding,
61 clippy::single_match
62)]
63const _: () = {
64 use miniserde::de::{Map, Visitor};
65 use miniserde::json::Value;
66 use miniserde::{Deserialize, Result, make_place};
67 use stripe_types::miniserde_helpers::FromValueOpt;
68 use stripe_types::{MapBuilder, ObjectDeser};
69
70 make_place!(Place);
71
72 impl Deserialize for TerminalConfiguration {
73 fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
74 Place::new(out)
75 }
76 }
77
78 struct Builder<'a> {
79 out: &'a mut Option<TerminalConfiguration>,
80 builder: TerminalConfigurationBuilder,
81 }
82
83 impl Visitor for Place<TerminalConfiguration> {
84 fn map(&mut self) -> Result<Box<dyn Map + '_>> {
85 Ok(Box::new(Builder {
86 out: &mut self.out,
87 builder: TerminalConfigurationBuilder::deser_default(),
88 }))
89 }
90 }
91
92 impl MapBuilder for TerminalConfigurationBuilder {
93 type Out = TerminalConfiguration;
94 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
95 Ok(match k {
96 "bbpos_wisepad3" => Deserialize::begin(&mut self.bbpos_wisepad3),
97 "bbpos_wisepos_e" => Deserialize::begin(&mut self.bbpos_wisepos_e),
98 "id" => Deserialize::begin(&mut self.id),
99 "is_account_default" => Deserialize::begin(&mut self.is_account_default),
100 "livemode" => Deserialize::begin(&mut self.livemode),
101 "name" => Deserialize::begin(&mut self.name),
102 "offline" => Deserialize::begin(&mut self.offline),
103 "reboot_window" => Deserialize::begin(&mut self.reboot_window),
104 "stripe_s700" => Deserialize::begin(&mut self.stripe_s700),
105 "tipping" => Deserialize::begin(&mut self.tipping),
106 "verifone_p400" => Deserialize::begin(&mut self.verifone_p400),
107 "wifi" => Deserialize::begin(&mut self.wifi),
108
109 _ => <dyn Visitor>::ignore(),
110 })
111 }
112
113 fn deser_default() -> Self {
114 Self {
115 bbpos_wisepad3: Deserialize::default(),
116 bbpos_wisepos_e: Deserialize::default(),
117 id: Deserialize::default(),
118 is_account_default: Deserialize::default(),
119 livemode: Deserialize::default(),
120 name: Deserialize::default(),
121 offline: Deserialize::default(),
122 reboot_window: Deserialize::default(),
123 stripe_s700: Deserialize::default(),
124 tipping: Deserialize::default(),
125 verifone_p400: Deserialize::default(),
126 wifi: Deserialize::default(),
127 }
128 }
129
130 fn take_out(&mut self) -> Option<Self::Out> {
131 let (
132 Some(bbpos_wisepad3),
133 Some(bbpos_wisepos_e),
134 Some(id),
135 Some(is_account_default),
136 Some(livemode),
137 Some(name),
138 Some(offline),
139 Some(reboot_window),
140 Some(stripe_s700),
141 Some(tipping),
142 Some(verifone_p400),
143 Some(wifi),
144 ) = (
145 self.bbpos_wisepad3.take(),
146 self.bbpos_wisepos_e.take(),
147 self.id.take(),
148 self.is_account_default,
149 self.livemode,
150 self.name.take(),
151 self.offline,
152 self.reboot_window,
153 self.stripe_s700.take(),
154 self.tipping.take(),
155 self.verifone_p400.take(),
156 self.wifi.take(),
157 )
158 else {
159 return None;
160 };
161 Some(Self::Out {
162 bbpos_wisepad3,
163 bbpos_wisepos_e,
164 id,
165 is_account_default,
166 livemode,
167 name,
168 offline,
169 reboot_window,
170 stripe_s700,
171 tipping,
172 verifone_p400,
173 wifi,
174 })
175 }
176 }
177
178 impl Map for Builder<'_> {
179 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
180 self.builder.key(k)
181 }
182
183 fn finish(&mut self) -> Result<()> {
184 *self.out = self.builder.take_out();
185 Ok(())
186 }
187 }
188
189 impl ObjectDeser for TerminalConfiguration {
190 type Builder = TerminalConfigurationBuilder;
191 }
192
193 impl FromValueOpt for TerminalConfiguration {
194 fn from_value(v: Value) -> Option<Self> {
195 let Value::Object(obj) = v else {
196 return None;
197 };
198 let mut b = TerminalConfigurationBuilder::deser_default();
199 for (k, v) in obj {
200 match k.as_str() {
201 "bbpos_wisepad3" => b.bbpos_wisepad3 = FromValueOpt::from_value(v),
202 "bbpos_wisepos_e" => b.bbpos_wisepos_e = FromValueOpt::from_value(v),
203 "id" => b.id = FromValueOpt::from_value(v),
204 "is_account_default" => b.is_account_default = FromValueOpt::from_value(v),
205 "livemode" => b.livemode = FromValueOpt::from_value(v),
206 "name" => b.name = FromValueOpt::from_value(v),
207 "offline" => b.offline = FromValueOpt::from_value(v),
208 "reboot_window" => b.reboot_window = FromValueOpt::from_value(v),
209 "stripe_s700" => b.stripe_s700 = FromValueOpt::from_value(v),
210 "tipping" => b.tipping = FromValueOpt::from_value(v),
211 "verifone_p400" => b.verifone_p400 = FromValueOpt::from_value(v),
212 "wifi" => b.wifi = FromValueOpt::from_value(v),
213
214 _ => {}
215 }
216 }
217 b.take_out()
218 }
219 }
220};
221#[cfg(feature = "serialize")]
222impl serde::Serialize for TerminalConfiguration {
223 fn serialize<S: serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
224 use serde::ser::SerializeStruct;
225 let mut s = s.serialize_struct("TerminalConfiguration", 13)?;
226 s.serialize_field("bbpos_wisepad3", &self.bbpos_wisepad3)?;
227 s.serialize_field("bbpos_wisepos_e", &self.bbpos_wisepos_e)?;
228 s.serialize_field("id", &self.id)?;
229 s.serialize_field("is_account_default", &self.is_account_default)?;
230 s.serialize_field("livemode", &self.livemode)?;
231 s.serialize_field("name", &self.name)?;
232 s.serialize_field("offline", &self.offline)?;
233 s.serialize_field("reboot_window", &self.reboot_window)?;
234 s.serialize_field("stripe_s700", &self.stripe_s700)?;
235 s.serialize_field("tipping", &self.tipping)?;
236 s.serialize_field("verifone_p400", &self.verifone_p400)?;
237 s.serialize_field("wifi", &self.wifi)?;
238
239 s.serialize_field("object", "terminal.configuration")?;
240 s.end()
241 }
242}
243impl stripe_types::Object for TerminalConfiguration {
244 type Id = stripe_terminal::TerminalConfigurationId;
245 fn id(&self) -> &Self::Id {
246 &self.id
247 }
248
249 fn into_id(self) -> Self::Id {
250 self.id
251 }
252}
253stripe_types::def_id!(TerminalConfigurationId);