Skip to main content

stripe_connect/
connect_embedded_account_session_create_components.rs

1#[derive(Copy, Clone, Eq, PartialEq)]
2#[cfg_attr(not(feature = "redact-generated-debug"), derive(Debug))]
3#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
4#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
5pub struct ConnectEmbeddedAccountSessionCreateComponents {
6    pub account_management: stripe_connect::ConnectEmbeddedAccountConfigClaim,
7    pub account_onboarding: stripe_connect::ConnectEmbeddedAccountConfigClaim,
8    pub balances: stripe_connect::ConnectEmbeddedPayoutsConfig,
9    pub disputes_list: stripe_connect::ConnectEmbeddedDisputesListConfig,
10    pub documents: stripe_connect::ConnectEmbeddedBaseConfigClaim,
11    pub financial_account: stripe_connect::ConnectEmbeddedFinancialAccountConfigClaim,
12    pub financial_account_transactions:
13        stripe_connect::ConnectEmbeddedFinancialAccountTransactionsConfigClaim,
14    pub instant_payouts_promotion: stripe_connect::ConnectEmbeddedInstantPayoutsPromotionConfig,
15    pub issuing_card: stripe_connect::ConnectEmbeddedIssuingCardConfigClaim,
16    pub issuing_cards_list: stripe_connect::ConnectEmbeddedIssuingCardsListConfigClaim,
17    pub notification_banner: stripe_connect::ConnectEmbeddedAccountConfigClaim,
18    pub payment_details: stripe_connect::ConnectEmbeddedPaymentsConfigClaim,
19    pub payment_disputes: stripe_connect::ConnectEmbeddedPaymentDisputesConfig,
20    pub payments: stripe_connect::ConnectEmbeddedPaymentsConfigClaim,
21    pub payout_details: stripe_connect::ConnectEmbeddedBaseConfigClaim,
22    pub payouts: stripe_connect::ConnectEmbeddedPayoutsConfig,
23    pub payouts_list: stripe_connect::ConnectEmbeddedBaseConfigClaim,
24    pub tax_registrations: stripe_connect::ConnectEmbeddedBaseConfigClaim,
25    pub tax_settings: stripe_connect::ConnectEmbeddedBaseConfigClaim,
26}
27#[cfg(feature = "redact-generated-debug")]
28impl std::fmt::Debug for ConnectEmbeddedAccountSessionCreateComponents {
29    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
30        f.debug_struct("ConnectEmbeddedAccountSessionCreateComponents").finish_non_exhaustive()
31    }
32}
33#[doc(hidden)]
34pub struct ConnectEmbeddedAccountSessionCreateComponentsBuilder {
35    account_management: Option<stripe_connect::ConnectEmbeddedAccountConfigClaim>,
36    account_onboarding: Option<stripe_connect::ConnectEmbeddedAccountConfigClaim>,
37    balances: Option<stripe_connect::ConnectEmbeddedPayoutsConfig>,
38    disputes_list: Option<stripe_connect::ConnectEmbeddedDisputesListConfig>,
39    documents: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
40    financial_account: Option<stripe_connect::ConnectEmbeddedFinancialAccountConfigClaim>,
41    financial_account_transactions:
42        Option<stripe_connect::ConnectEmbeddedFinancialAccountTransactionsConfigClaim>,
43    instant_payouts_promotion: Option<stripe_connect::ConnectEmbeddedInstantPayoutsPromotionConfig>,
44    issuing_card: Option<stripe_connect::ConnectEmbeddedIssuingCardConfigClaim>,
45    issuing_cards_list: Option<stripe_connect::ConnectEmbeddedIssuingCardsListConfigClaim>,
46    notification_banner: Option<stripe_connect::ConnectEmbeddedAccountConfigClaim>,
47    payment_details: Option<stripe_connect::ConnectEmbeddedPaymentsConfigClaim>,
48    payment_disputes: Option<stripe_connect::ConnectEmbeddedPaymentDisputesConfig>,
49    payments: Option<stripe_connect::ConnectEmbeddedPaymentsConfigClaim>,
50    payout_details: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
51    payouts: Option<stripe_connect::ConnectEmbeddedPayoutsConfig>,
52    payouts_list: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
53    tax_registrations: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
54    tax_settings: Option<stripe_connect::ConnectEmbeddedBaseConfigClaim>,
55}
56
57#[allow(
58    unused_variables,
59    irrefutable_let_patterns,
60    clippy::let_unit_value,
61    clippy::match_single_binding,
62    clippy::single_match
63)]
64const _: () = {
65    use miniserde::de::{Map, Visitor};
66    use miniserde::json::Value;
67    use miniserde::{Deserialize, Result, make_place};
68    use stripe_types::miniserde_helpers::FromValueOpt;
69    use stripe_types::{MapBuilder, ObjectDeser};
70
71    make_place!(Place);
72
73    impl Deserialize for ConnectEmbeddedAccountSessionCreateComponents {
74        fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
75            Place::new(out)
76        }
77    }
78
79    struct Builder<'a> {
80        out: &'a mut Option<ConnectEmbeddedAccountSessionCreateComponents>,
81        builder: ConnectEmbeddedAccountSessionCreateComponentsBuilder,
82    }
83
84    impl Visitor for Place<ConnectEmbeddedAccountSessionCreateComponents> {
85        fn map(&mut self) -> Result<Box<dyn Map + '_>> {
86            Ok(Box::new(Builder {
87                out: &mut self.out,
88                builder: ConnectEmbeddedAccountSessionCreateComponentsBuilder::deser_default(),
89            }))
90        }
91    }
92
93    impl MapBuilder for ConnectEmbeddedAccountSessionCreateComponentsBuilder {
94        type Out = ConnectEmbeddedAccountSessionCreateComponents;
95        fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
96            Ok(match k {
97                "account_management" => Deserialize::begin(&mut self.account_management),
98                "account_onboarding" => Deserialize::begin(&mut self.account_onboarding),
99                "balances" => Deserialize::begin(&mut self.balances),
100                "disputes_list" => Deserialize::begin(&mut self.disputes_list),
101                "documents" => Deserialize::begin(&mut self.documents),
102                "financial_account" => Deserialize::begin(&mut self.financial_account),
103                "financial_account_transactions" => {
104                    Deserialize::begin(&mut self.financial_account_transactions)
105                }
106                "instant_payouts_promotion" => {
107                    Deserialize::begin(&mut self.instant_payouts_promotion)
108                }
109                "issuing_card" => Deserialize::begin(&mut self.issuing_card),
110                "issuing_cards_list" => Deserialize::begin(&mut self.issuing_cards_list),
111                "notification_banner" => Deserialize::begin(&mut self.notification_banner),
112                "payment_details" => Deserialize::begin(&mut self.payment_details),
113                "payment_disputes" => Deserialize::begin(&mut self.payment_disputes),
114                "payments" => Deserialize::begin(&mut self.payments),
115                "payout_details" => Deserialize::begin(&mut self.payout_details),
116                "payouts" => Deserialize::begin(&mut self.payouts),
117                "payouts_list" => Deserialize::begin(&mut self.payouts_list),
118                "tax_registrations" => Deserialize::begin(&mut self.tax_registrations),
119                "tax_settings" => Deserialize::begin(&mut self.tax_settings),
120                _ => <dyn Visitor>::ignore(),
121            })
122        }
123
124        fn deser_default() -> Self {
125            Self {
126                account_management: Deserialize::default(),
127                account_onboarding: Deserialize::default(),
128                balances: Deserialize::default(),
129                disputes_list: Deserialize::default(),
130                documents: Deserialize::default(),
131                financial_account: Deserialize::default(),
132                financial_account_transactions: Deserialize::default(),
133                instant_payouts_promotion: Deserialize::default(),
134                issuing_card: Deserialize::default(),
135                issuing_cards_list: Deserialize::default(),
136                notification_banner: Deserialize::default(),
137                payment_details: Deserialize::default(),
138                payment_disputes: Deserialize::default(),
139                payments: Deserialize::default(),
140                payout_details: Deserialize::default(),
141                payouts: Deserialize::default(),
142                payouts_list: Deserialize::default(),
143                tax_registrations: Deserialize::default(),
144                tax_settings: Deserialize::default(),
145            }
146        }
147
148        fn take_out(&mut self) -> Option<Self::Out> {
149            let (
150                Some(account_management),
151                Some(account_onboarding),
152                Some(balances),
153                Some(disputes_list),
154                Some(documents),
155                Some(financial_account),
156                Some(financial_account_transactions),
157                Some(instant_payouts_promotion),
158                Some(issuing_card),
159                Some(issuing_cards_list),
160                Some(notification_banner),
161                Some(payment_details),
162                Some(payment_disputes),
163                Some(payments),
164                Some(payout_details),
165                Some(payouts),
166                Some(payouts_list),
167                Some(tax_registrations),
168                Some(tax_settings),
169            ) = (
170                self.account_management,
171                self.account_onboarding,
172                self.balances,
173                self.disputes_list,
174                self.documents,
175                self.financial_account,
176                self.financial_account_transactions,
177                self.instant_payouts_promotion,
178                self.issuing_card,
179                self.issuing_cards_list,
180                self.notification_banner,
181                self.payment_details,
182                self.payment_disputes,
183                self.payments,
184                self.payout_details,
185                self.payouts,
186                self.payouts_list,
187                self.tax_registrations,
188                self.tax_settings,
189            )
190            else {
191                return None;
192            };
193            Some(Self::Out {
194                account_management,
195                account_onboarding,
196                balances,
197                disputes_list,
198                documents,
199                financial_account,
200                financial_account_transactions,
201                instant_payouts_promotion,
202                issuing_card,
203                issuing_cards_list,
204                notification_banner,
205                payment_details,
206                payment_disputes,
207                payments,
208                payout_details,
209                payouts,
210                payouts_list,
211                tax_registrations,
212                tax_settings,
213            })
214        }
215    }
216
217    impl Map for Builder<'_> {
218        fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
219            self.builder.key(k)
220        }
221
222        fn finish(&mut self) -> Result<()> {
223            *self.out = self.builder.take_out();
224            Ok(())
225        }
226    }
227
228    impl ObjectDeser for ConnectEmbeddedAccountSessionCreateComponents {
229        type Builder = ConnectEmbeddedAccountSessionCreateComponentsBuilder;
230    }
231
232    impl FromValueOpt for ConnectEmbeddedAccountSessionCreateComponents {
233        fn from_value(v: Value) -> Option<Self> {
234            let Value::Object(obj) = v else {
235                return None;
236            };
237            let mut b = ConnectEmbeddedAccountSessionCreateComponentsBuilder::deser_default();
238            for (k, v) in obj {
239                match k.as_str() {
240                    "account_management" => b.account_management = FromValueOpt::from_value(v),
241                    "account_onboarding" => b.account_onboarding = FromValueOpt::from_value(v),
242                    "balances" => b.balances = FromValueOpt::from_value(v),
243                    "disputes_list" => b.disputes_list = FromValueOpt::from_value(v),
244                    "documents" => b.documents = FromValueOpt::from_value(v),
245                    "financial_account" => b.financial_account = FromValueOpt::from_value(v),
246                    "financial_account_transactions" => {
247                        b.financial_account_transactions = FromValueOpt::from_value(v)
248                    }
249                    "instant_payouts_promotion" => {
250                        b.instant_payouts_promotion = FromValueOpt::from_value(v)
251                    }
252                    "issuing_card" => b.issuing_card = FromValueOpt::from_value(v),
253                    "issuing_cards_list" => b.issuing_cards_list = FromValueOpt::from_value(v),
254                    "notification_banner" => b.notification_banner = FromValueOpt::from_value(v),
255                    "payment_details" => b.payment_details = FromValueOpt::from_value(v),
256                    "payment_disputes" => b.payment_disputes = FromValueOpt::from_value(v),
257                    "payments" => b.payments = FromValueOpt::from_value(v),
258                    "payout_details" => b.payout_details = FromValueOpt::from_value(v),
259                    "payouts" => b.payouts = FromValueOpt::from_value(v),
260                    "payouts_list" => b.payouts_list = FromValueOpt::from_value(v),
261                    "tax_registrations" => b.tax_registrations = FromValueOpt::from_value(v),
262                    "tax_settings" => b.tax_settings = FromValueOpt::from_value(v),
263                    _ => {}
264                }
265            }
266            b.take_out()
267        }
268    }
269};