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