stellar_xdr/generated/
account_merge_result.rs1#[allow(unused_imports, clippy::wildcard_imports)]
2use super::*;
3
4#[cfg_attr(feature = "serde", cfg_eval::cfg_eval)]
24#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
25#[cfg_attr(feature = "arbitrary", derive(Arbitrary))]
26#[cfg_attr(
27 all(feature = "serde", feature = "alloc"),
28 serde_with::serde_as,
29 derive(serde::Serialize, serde::Deserialize),
30 serde(rename_all = "snake_case")
31)]
32#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
33#[allow(clippy::large_enum_variant)]
34pub enum AccountMergeResult {
35 Success(
36 #[cfg_attr(
37 all(feature = "serde", feature = "alloc"),
38 serde_as(as = "NumberOrString")
39 )]
40 i64,
41 ),
42 Malformed,
43 NoAccount,
44 ImmutableSet,
45 HasSubEntries,
46 SeqnumTooFar,
47 DestFull,
48 IsSponsor,
49}
50
51#[cfg(feature = "alloc")]
52impl Default for AccountMergeResult {
53 fn default() -> Self {
54 Self::Success(i64::default())
55 }
56}
57
58impl AccountMergeResult {
59 const _VARIANTS: &[AccountMergeResultCode] = &[
60 AccountMergeResultCode::Success,
61 AccountMergeResultCode::Malformed,
62 AccountMergeResultCode::NoAccount,
63 AccountMergeResultCode::ImmutableSet,
64 AccountMergeResultCode::HasSubEntries,
65 AccountMergeResultCode::SeqnumTooFar,
66 AccountMergeResultCode::DestFull,
67 AccountMergeResultCode::IsSponsor,
68 ];
69 pub const VARIANTS: [AccountMergeResultCode; Self::_VARIANTS.len()] = {
70 let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()];
71 let mut i = 1;
72 while i < Self::_VARIANTS.len() {
73 arr[i] = Self::_VARIANTS[i];
74 i += 1;
75 }
76 arr
77 };
78 const _VARIANTS_STR: &[&str] = &[
79 "Success",
80 "Malformed",
81 "NoAccount",
82 "ImmutableSet",
83 "HasSubEntries",
84 "SeqnumTooFar",
85 "DestFull",
86 "IsSponsor",
87 ];
88 pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = {
89 let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()];
90 let mut i = 1;
91 while i < Self::_VARIANTS_STR.len() {
92 arr[i] = Self::_VARIANTS_STR[i];
93 i += 1;
94 }
95 arr
96 };
97
98 #[must_use]
99 pub const fn name(&self) -> &'static str {
100 match self {
101 Self::Success(_) => "Success",
102 Self::Malformed => "Malformed",
103 Self::NoAccount => "NoAccount",
104 Self::ImmutableSet => "ImmutableSet",
105 Self::HasSubEntries => "HasSubEntries",
106 Self::SeqnumTooFar => "SeqnumTooFar",
107 Self::DestFull => "DestFull",
108 Self::IsSponsor => "IsSponsor",
109 }
110 }
111
112 #[must_use]
113 pub const fn discriminant(&self) -> AccountMergeResultCode {
114 #[allow(clippy::match_same_arms)]
115 match self {
116 Self::Success(_) => AccountMergeResultCode::Success,
117 Self::Malformed => AccountMergeResultCode::Malformed,
118 Self::NoAccount => AccountMergeResultCode::NoAccount,
119 Self::ImmutableSet => AccountMergeResultCode::ImmutableSet,
120 Self::HasSubEntries => AccountMergeResultCode::HasSubEntries,
121 Self::SeqnumTooFar => AccountMergeResultCode::SeqnumTooFar,
122 Self::DestFull => AccountMergeResultCode::DestFull,
123 Self::IsSponsor => AccountMergeResultCode::IsSponsor,
124 }
125 }
126
127 #[must_use]
128 pub const fn variants() -> [AccountMergeResultCode; Self::_VARIANTS.len()] {
129 Self::VARIANTS
130 }
131}
132
133impl Name for AccountMergeResult {
134 #[must_use]
135 fn name(&self) -> &'static str {
136 Self::name(self)
137 }
138}
139
140impl Discriminant<AccountMergeResultCode> for AccountMergeResult {
141 #[must_use]
142 fn discriminant(&self) -> AccountMergeResultCode {
143 Self::discriminant(self)
144 }
145}
146
147impl Variants<AccountMergeResultCode> for AccountMergeResult {
148 fn variants() -> slice::Iter<'static, AccountMergeResultCode> {
149 Self::VARIANTS.iter()
150 }
151}
152
153impl Union<AccountMergeResultCode> for AccountMergeResult {}
154
155impl ReadXdr for AccountMergeResult {
156 #[cfg(feature = "std")]
157 fn read_xdr<R: Read>(r: &mut Limited<R>) -> Result<Self, Error> {
158 r.with_limited_depth(|r| {
159 let dv: AccountMergeResultCode = <AccountMergeResultCode as ReadXdr>::read_xdr(r)?;
160 #[allow(clippy::match_same_arms, clippy::match_wildcard_for_single_variants)]
161 let v = match dv {
162 AccountMergeResultCode::Success => Self::Success(i64::read_xdr(r)?),
163 AccountMergeResultCode::Malformed => Self::Malformed,
164 AccountMergeResultCode::NoAccount => Self::NoAccount,
165 AccountMergeResultCode::ImmutableSet => Self::ImmutableSet,
166 AccountMergeResultCode::HasSubEntries => Self::HasSubEntries,
167 AccountMergeResultCode::SeqnumTooFar => Self::SeqnumTooFar,
168 AccountMergeResultCode::DestFull => Self::DestFull,
169 AccountMergeResultCode::IsSponsor => Self::IsSponsor,
170 #[allow(unreachable_patterns)]
171 _ => return Err(Error::Invalid),
172 };
173 Ok(v)
174 })
175 }
176}
177
178impl WriteXdr for AccountMergeResult {
179 #[cfg(feature = "std")]
180 fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error> {
181 w.with_limited_depth(|w| {
182 self.discriminant().write_xdr(w)?;
183 #[allow(clippy::match_same_arms)]
184 match self {
185 Self::Success(v) => v.write_xdr(w)?,
186 Self::Malformed => ().write_xdr(w)?,
187 Self::NoAccount => ().write_xdr(w)?,
188 Self::ImmutableSet => ().write_xdr(w)?,
189 Self::HasSubEntries => ().write_xdr(w)?,
190 Self::SeqnumTooFar => ().write_xdr(w)?,
191 Self::DestFull => ().write_xdr(w)?,
192 Self::IsSponsor => ().write_xdr(w)?,
193 };
194 Ok(())
195 })
196 }
197}