Skip to main content

stellar_xdr/generated/
end_sponsoring_future_reserves_result_code.rs

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