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