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