payjp_shared/
delete_response.rs1#[derive(Clone,Debug,)]#[cfg_attr(feature = "serialize", derive(serde::Serialize))]
3#[cfg_attr(feature = "deserialize", derive(serde::Deserialize))]
4pub struct DeleteResponse {
5 pub deleted: bool,
7 pub id: payjp_shared::DeleteResponseId,
9 pub livemode: bool,
11
12}
13#[doc(hidden)]
14pub struct DeleteResponseBuilder {
15 deleted: Option<bool>,
16id: Option<payjp_shared::DeleteResponseId>,
17livemode: Option<bool>,
18
19}
20
21#[allow(unused_variables, irrefutable_let_patterns, clippy::let_unit_value, clippy::match_single_binding, clippy::single_match)]
22const _: () = {
23 use miniserde::de::{Map, Visitor};
24 use miniserde::json::Value;
25 use miniserde::{make_place, Deserialize, Result};
26 use payjp_types::{MapBuilder, ObjectDeser};
27 use payjp_types::miniserde_helpers::FromValueOpt;
28
29 make_place!(Place);
30
31 impl Deserialize for DeleteResponse {
32 fn begin(out: &mut Option<Self>) -> &mut dyn Visitor {
33 Place::new(out)
34 }
35}
36
37struct Builder<'a> {
38 out: &'a mut Option<DeleteResponse>,
39 builder: DeleteResponseBuilder,
40}
41
42impl Visitor for Place<DeleteResponse> {
43 fn map(&mut self) -> Result<Box<dyn Map + '_>> {
44 Ok(Box::new(Builder {
45 out: &mut self.out,
46 builder: DeleteResponseBuilder::deser_default(),
47 }))
48 }
49}
50
51impl MapBuilder for DeleteResponseBuilder {
52 type Out = DeleteResponse;
53 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
54 Ok(match k {
55 "deleted" => Deserialize::begin(&mut self.deleted),
56"id" => Deserialize::begin(&mut self.id),
57"livemode" => Deserialize::begin(&mut self.livemode),
58
59 _ => <dyn Visitor>::ignore(),
60 })
61 }
62
63 fn deser_default() -> Self {
64 Self {
65 deleted: Deserialize::default(),
66id: Deserialize::default(),
67livemode: Deserialize::default(),
68
69 }
70 }
71
72 fn take_out(&mut self) -> Option<Self::Out> {
73 let (Some(deleted),
74Some(id),
75Some(livemode),
76) = (self.deleted,
77self.id.take(),
78self.livemode,
79) else {
80 return None;
81 };
82 Some(Self::Out { deleted,id,livemode })
83 }
84}
85
86impl<'a> Map for Builder<'a> {
87 fn key(&mut self, k: &str) -> Result<&mut dyn Visitor> {
88 self.builder.key(k)
89 }
90
91 fn finish(&mut self) -> Result<()> {
92 *self.out = self.builder.take_out();
93 Ok(())
94 }
95}
96
97impl ObjectDeser for DeleteResponse {
98 type Builder = DeleteResponseBuilder;
99}
100
101impl FromValueOpt for DeleteResponse {
102 fn from_value(v: Value) -> Option<Self> {
103 let Value::Object(obj) = v else {
104 return None;
105 };
106 let mut b = DeleteResponseBuilder::deser_default();
107 for (k, v) in obj {
108 match k.as_str() {
109 "deleted" => b.deleted = FromValueOpt::from_value(v),
110"id" => b.id = FromValueOpt::from_value(v),
111"livemode" => b.livemode = FromValueOpt::from_value(v),
112
113 _ => {}
114 }
115 }
116 b.take_out()
117 }
118}
119
120};
121impl payjp_types::Object for DeleteResponse {
122 type Id = payjp_shared::DeleteResponseId;
123 fn id(&self) -> &Self::Id {
124 &self.id
125 }
126
127 fn into_id(self) -> Self::Id {
128 self.id
129 }
130}
131payjp_types::def_id!(DeleteResponseId);