1#[derive(Clone, Debug)]
3#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
4#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
5pub struct TerminalReaderReaderResourceReaderAction {
6 pub collect_inputs: Option<stripe_terminal::TerminalReaderReaderResourceCollectInputsAction>,
7 pub collect_payment_method:
8 Option<stripe_terminal::TerminalReaderReaderResourceCollectPaymentMethodAction>,
9 pub confirm_payment_intent:
10 Option<stripe_terminal::TerminalReaderReaderResourceConfirmPaymentIntentAction>,
11 pub failure_code: Option<String>,
13 pub failure_message: Option<String>,
15 pub process_payment_intent:
16 Option<stripe_terminal::TerminalReaderReaderResourceProcessPaymentIntentAction>,
17 pub process_setup_intent:
18 Option<stripe_terminal::TerminalReaderReaderResourceProcessSetupIntentAction>,
19 pub refund_payment: Option<stripe_terminal::TerminalReaderReaderResourceRefundPaymentAction>,
20 pub set_reader_display:
21 Option<stripe_terminal::TerminalReaderReaderResourceSetReaderDisplayAction>,
22 pub status: TerminalReaderReaderResourceReaderActionStatus,
24 #[cfg_attr(any(feature = "deserialize", feature = "serialize"), serde(rename = "type"))]
26 pub type_: TerminalReaderReaderResourceReaderActionType,
27}
28#[doc(hidden)]
29pub struct TerminalReaderReaderResourceReaderActionBuilder {
30 collect_inputs:
31 Option<Option<stripe_terminal::TerminalReaderReaderResourceCollectInputsAction>>,
32 collect_payment_method:
33 Option<Option<stripe_terminal::TerminalReaderReaderResourceCollectPaymentMethodAction>>,
34 confirm_payment_intent:
35 Option<Option<stripe_terminal::TerminalReaderReaderResourceConfirmPaymentIntentAction>>,
36 failure_code: Option<Option<String>>,
37 failure_message: Option<Option<String>>,
38 process_payment_intent:
39 Option<Option<stripe_terminal::TerminalReaderReaderResourceProcessPaymentIntentAction>>,
40 process_setup_intent:
41 Option<Option<stripe_terminal::TerminalReaderReaderResourceProcessSetupIntentAction>>,
42 refund_payment:
43 Option<Option<stripe_terminal::TerminalReaderReaderResourceRefundPaymentAction>>,
44 set_reader_display:
45 Option<Option<stripe_terminal::TerminalReaderReaderResourceSetReaderDisplayAction>>,
46 status: Option<TerminalReaderReaderResourceReaderActionStatus>,
47 type_: Option<TerminalReaderReaderResourceReaderActionType>,
48}
49
50#[allow(
51 unused_variables,
52 irrefutable_let_patterns,
53 clippy::let_unit_value,
54 clippy::match_single_binding,
55 clippy::single_match
56)]
57const _: () = {
58 use miniserde::de::{Map, Visitor};
59 use miniserde::json::Value;
60 use miniserde::{Deserialize, Result, make_place};
61 use stripe_types::miniserde_helpers::FromValueOpt;
62 use stripe_types::{MapBuilder, ObjectDeser};
63
64 make_place!(Place);
65
66 impl Deserialize for TerminalReaderReaderResourceReaderAction {
67 fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
68 Place::new(out)
69 }
70 }
71
72 struct Builder<'a> {
73 out: &'a mut Option<TerminalReaderReaderResourceReaderAction>,
74 builder: TerminalReaderReaderResourceReaderActionBuilder,
75 }
76
77 impl Visitor for Place<TerminalReaderReaderResourceReaderAction> {
78 fn map(&mut self) -> Result<Box<dyn Map + '_>> {
79 Ok(Box::new(Builder {
80 out: &mut self.out,
81 builder: TerminalReaderReaderResourceReaderActionBuilder::deser_default(),
82 }))
83 }
84 }
85
86 impl MapBuilder for TerminalReaderReaderResourceReaderActionBuilder {
87 type Out = TerminalReaderReaderResourceReaderAction;
88 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
89 Ok(match k {
90 "collect_inputs" => Deserialize::begin(&mut self.collect_inputs),
91 "collect_payment_method" => Deserialize::begin(&mut self.collect_payment_method),
92 "confirm_payment_intent" => Deserialize::begin(&mut self.confirm_payment_intent),
93 "failure_code" => Deserialize::begin(&mut self.failure_code),
94 "failure_message" => Deserialize::begin(&mut self.failure_message),
95 "process_payment_intent" => Deserialize::begin(&mut self.process_payment_intent),
96 "process_setup_intent" => Deserialize::begin(&mut self.process_setup_intent),
97 "refund_payment" => Deserialize::begin(&mut self.refund_payment),
98 "set_reader_display" => Deserialize::begin(&mut self.set_reader_display),
99 "status" => Deserialize::begin(&mut self.status),
100 "type" => Deserialize::begin(&mut self.type_),
101
102 _ => <dyn Visitor>::ignore(),
103 })
104 }
105
106 fn deser_default() -> Self {
107 Self {
108 collect_inputs: Deserialize::default(),
109 collect_payment_method: Deserialize::default(),
110 confirm_payment_intent: Deserialize::default(),
111 failure_code: Deserialize::default(),
112 failure_message: Deserialize::default(),
113 process_payment_intent: Deserialize::default(),
114 process_setup_intent: Deserialize::default(),
115 refund_payment: Deserialize::default(),
116 set_reader_display: Deserialize::default(),
117 status: Deserialize::default(),
118 type_: Deserialize::default(),
119 }
120 }
121
122 fn take_out(&mut self) -> Option<Self::Out> {
123 let (
124 Some(collect_inputs),
125 Some(collect_payment_method),
126 Some(confirm_payment_intent),
127 Some(failure_code),
128 Some(failure_message),
129 Some(process_payment_intent),
130 Some(process_setup_intent),
131 Some(refund_payment),
132 Some(set_reader_display),
133 Some(status),
134 Some(type_),
135 ) = (
136 self.collect_inputs.take(),
137 self.collect_payment_method.take(),
138 self.confirm_payment_intent.take(),
139 self.failure_code.take(),
140 self.failure_message.take(),
141 self.process_payment_intent.take(),
142 self.process_setup_intent.take(),
143 self.refund_payment.take(),
144 self.set_reader_display.take(),
145 self.status,
146 self.type_,
147 )
148 else {
149 return None;
150 };
151 Some(Self::Out {
152 collect_inputs,
153 collect_payment_method,
154 confirm_payment_intent,
155 failure_code,
156 failure_message,
157 process_payment_intent,
158 process_setup_intent,
159 refund_payment,
160 set_reader_display,
161 status,
162 type_,
163 })
164 }
165 }
166
167 impl Map for Builder<'_> {
168 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
169 self.builder.key(k)
170 }
171
172 fn finish(&mut self) -> Result<()> {
173 *self.out = self.builder.take_out();
174 Ok(())
175 }
176 }
177
178 impl ObjectDeser for TerminalReaderReaderResourceReaderAction {
179 type Builder = TerminalReaderReaderResourceReaderActionBuilder;
180 }
181
182 impl FromValueOpt for TerminalReaderReaderResourceReaderAction {
183 fn from_value(v: Value) -> Option<Self> {
184 let Value::Object(obj) = v else {
185 return None;
186 };
187 let mut b = TerminalReaderReaderResourceReaderActionBuilder::deser_default();
188 for (k, v) in obj {
189 match k.as_str() {
190 "collect_inputs" => b.collect_inputs = FromValueOpt::from_value(v),
191 "collect_payment_method" => {
192 b.collect_payment_method = FromValueOpt::from_value(v)
193 }
194 "confirm_payment_intent" => {
195 b.confirm_payment_intent = FromValueOpt::from_value(v)
196 }
197 "failure_code" => b.failure_code = FromValueOpt::from_value(v),
198 "failure_message" => b.failure_message = FromValueOpt::from_value(v),
199 "process_payment_intent" => {
200 b.process_payment_intent = FromValueOpt::from_value(v)
201 }
202 "process_setup_intent" => b.process_setup_intent = FromValueOpt::from_value(v),
203 "refund_payment" => b.refund_payment = FromValueOpt::from_value(v),
204 "set_reader_display" => b.set_reader_display = FromValueOpt::from_value(v),
205 "status" => b.status = FromValueOpt::from_value(v),
206 "type" => b.type_ = FromValueOpt::from_value(v),
207
208 _ => {}
209 }
210 }
211 b.take_out()
212 }
213 }
214};
215#[derive(Copy, Clone, Eq, PartialEq)]
217pub enum TerminalReaderReaderResourceReaderActionStatus {
218 Failed,
219 InProgress,
220 Succeeded,
221}
222impl TerminalReaderReaderResourceReaderActionStatus {
223 pub fn as_str(self) -> &'static str {
224 use TerminalReaderReaderResourceReaderActionStatus::*;
225 match self {
226 Failed => "failed",
227 InProgress => "in_progress",
228 Succeeded => "succeeded",
229 }
230 }
231}
232
233impl std::str::FromStr for TerminalReaderReaderResourceReaderActionStatus {
234 type Err = stripe_types::StripeParseError;
235 fn from_str(s: &str) -> Result<Self, Self::Err> {
236 use TerminalReaderReaderResourceReaderActionStatus::*;
237 match s {
238 "failed" => Ok(Failed),
239 "in_progress" => Ok(InProgress),
240 "succeeded" => Ok(Succeeded),
241 _ => Err(stripe_types::StripeParseError),
242 }
243 }
244}
245impl std::fmt::Display for TerminalReaderReaderResourceReaderActionStatus {
246 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
247 f.write_str(self.as_str())
248 }
249}
250
251impl std::fmt::Debug for TerminalReaderReaderResourceReaderActionStatus {
252 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
253 f.write_str(self.as_str())
254 }
255}
256#[cfg(feature = "serialize")]
257impl serde::Serialize for TerminalReaderReaderResourceReaderActionStatus {
258 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
259 where
260 S: serde::Serializer,
261 {
262 serializer.serialize_str(self.as_str())
263 }
264}
265impl miniserde::Deserialize for TerminalReaderReaderResourceReaderActionStatus {
266 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
267 crate::Place::new(out)
268 }
269}
270
271impl miniserde::de::Visitor for crate::Place<TerminalReaderReaderResourceReaderActionStatus> {
272 fn string(&mut self, s: &str) -> miniserde::Result<()> {
273 use std::str::FromStr;
274 self.out = Some(
275 TerminalReaderReaderResourceReaderActionStatus::from_str(s)
276 .map_err(|_| miniserde::Error)?,
277 );
278 Ok(())
279 }
280}
281
282stripe_types::impl_from_val_with_from_str!(TerminalReaderReaderResourceReaderActionStatus);
283#[cfg(feature = "deserialize")]
284impl<'de> serde::Deserialize<'de> for TerminalReaderReaderResourceReaderActionStatus {
285 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
286 use std::str::FromStr;
287 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
288 Self::from_str(&s).map_err(|_| {
289 serde::de::Error::custom(
290 "Unknown value for TerminalReaderReaderResourceReaderActionStatus",
291 )
292 })
293 }
294}
295#[derive(Copy, Clone, Eq, PartialEq)]
297pub enum TerminalReaderReaderResourceReaderActionType {
298 CollectInputs,
299 CollectPaymentMethod,
300 ConfirmPaymentIntent,
301 ProcessPaymentIntent,
302 ProcessSetupIntent,
303 RefundPayment,
304 SetReaderDisplay,
305}
306impl TerminalReaderReaderResourceReaderActionType {
307 pub fn as_str(self) -> &'static str {
308 use TerminalReaderReaderResourceReaderActionType::*;
309 match self {
310 CollectInputs => "collect_inputs",
311 CollectPaymentMethod => "collect_payment_method",
312 ConfirmPaymentIntent => "confirm_payment_intent",
313 ProcessPaymentIntent => "process_payment_intent",
314 ProcessSetupIntent => "process_setup_intent",
315 RefundPayment => "refund_payment",
316 SetReaderDisplay => "set_reader_display",
317 }
318 }
319}
320
321impl std::str::FromStr for TerminalReaderReaderResourceReaderActionType {
322 type Err = stripe_types::StripeParseError;
323 fn from_str(s: &str) -> Result<Self, Self::Err> {
324 use TerminalReaderReaderResourceReaderActionType::*;
325 match s {
326 "collect_inputs" => Ok(CollectInputs),
327 "collect_payment_method" => Ok(CollectPaymentMethod),
328 "confirm_payment_intent" => Ok(ConfirmPaymentIntent),
329 "process_payment_intent" => Ok(ProcessPaymentIntent),
330 "process_setup_intent" => Ok(ProcessSetupIntent),
331 "refund_payment" => Ok(RefundPayment),
332 "set_reader_display" => Ok(SetReaderDisplay),
333 _ => Err(stripe_types::StripeParseError),
334 }
335 }
336}
337impl std::fmt::Display for TerminalReaderReaderResourceReaderActionType {
338 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
339 f.write_str(self.as_str())
340 }
341}
342
343impl std::fmt::Debug for TerminalReaderReaderResourceReaderActionType {
344 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
345 f.write_str(self.as_str())
346 }
347}
348#[cfg(feature = "serialize")]
349impl serde::Serialize for TerminalReaderReaderResourceReaderActionType {
350 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
351 where
352 S: serde::Serializer,
353 {
354 serializer.serialize_str(self.as_str())
355 }
356}
357impl miniserde::Deserialize for TerminalReaderReaderResourceReaderActionType {
358 fn begin(out: &mut Option<Self>) -> &mut dyn miniserde::de::Visitor {
359 crate::Place::new(out)
360 }
361}
362
363impl miniserde::de::Visitor for crate::Place<TerminalReaderReaderResourceReaderActionType> {
364 fn string(&mut self, s: &str) -> miniserde::Result<()> {
365 use std::str::FromStr;
366 self.out = Some(
367 TerminalReaderReaderResourceReaderActionType::from_str(s)
368 .map_err(|_| miniserde::Error)?,
369 );
370 Ok(())
371 }
372}
373
374stripe_types::impl_from_val_with_from_str!(TerminalReaderReaderResourceReaderActionType);
375#[cfg(feature = "deserialize")]
376impl<'de> serde::Deserialize<'de> for TerminalReaderReaderResourceReaderActionType {
377 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
378 use std::str::FromStr;
379 let s: std::borrow::Cow<'de, str> = serde::Deserialize::deserialize(deserializer)?;
380 Self::from_str(&s).map_err(|_| {
381 serde::de::Error::custom(
382 "Unknown value for TerminalReaderReaderResourceReaderActionType",
383 )
384 })
385 }
386}