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