Skip to main content

stellar_xdr/generated/
bump_sequence_result_code.rs

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