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