stellar_xdr/generated/
sc_spec_udt_union_case_v0.rs1#[allow(unused_imports, clippy::wildcard_imports)]
2use super::*;
3
4#[cfg_attr(feature = "serde", cfg_eval::cfg_eval)]
18#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
19#[cfg_attr(feature = "arbitrary", derive(Arbitrary))]
20#[cfg_attr(
21 all(feature = "serde", feature = "alloc"),
22 serde_with::serde_as,
23 derive(serde::Serialize, serde::Deserialize),
24 serde(rename_all = "snake_case")
25)]
26#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
27#[allow(clippy::large_enum_variant)]
28pub enum ScSpecUdtUnionCaseV0 {
29 VoidV0(ScSpecUdtUnionCaseVoidV0),
30 TupleV0(ScSpecUdtUnionCaseTupleV0),
31}
32
33#[cfg(feature = "alloc")]
34impl Default for ScSpecUdtUnionCaseV0 {
35 fn default() -> Self {
36 Self::VoidV0(ScSpecUdtUnionCaseVoidV0::default())
37 }
38}
39
40impl ScSpecUdtUnionCaseV0 {
41 const _VARIANTS: &[ScSpecUdtUnionCaseV0Kind] = &[
42 ScSpecUdtUnionCaseV0Kind::VoidV0,
43 ScSpecUdtUnionCaseV0Kind::TupleV0,
44 ];
45 pub const VARIANTS: [ScSpecUdtUnionCaseV0Kind; 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] = &["VoidV0", "TupleV0"];
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::VoidV0(_) => "VoidV0",
69 Self::TupleV0(_) => "TupleV0",
70 }
71 }
72
73 #[must_use]
74 pub const fn discriminant(&self) -> ScSpecUdtUnionCaseV0Kind {
75 #[allow(clippy::match_same_arms)]
76 match self {
77 Self::VoidV0(_) => ScSpecUdtUnionCaseV0Kind::VoidV0,
78 Self::TupleV0(_) => ScSpecUdtUnionCaseV0Kind::TupleV0,
79 }
80 }
81
82 #[must_use]
83 pub const fn variants() -> [ScSpecUdtUnionCaseV0Kind; Self::_VARIANTS.len()] {
84 Self::VARIANTS
85 }
86}
87
88impl Name for ScSpecUdtUnionCaseV0 {
89 #[must_use]
90 fn name(&self) -> &'static str {
91 Self::name(self)
92 }
93}
94
95impl Discriminant<ScSpecUdtUnionCaseV0Kind> for ScSpecUdtUnionCaseV0 {
96 #[must_use]
97 fn discriminant(&self) -> ScSpecUdtUnionCaseV0Kind {
98 Self::discriminant(self)
99 }
100}
101
102impl Variants<ScSpecUdtUnionCaseV0Kind> for ScSpecUdtUnionCaseV0 {
103 fn variants() -> slice::Iter<'static, ScSpecUdtUnionCaseV0Kind> {
104 Self::VARIANTS.iter()
105 }
106}
107
108impl Union<ScSpecUdtUnionCaseV0Kind> for ScSpecUdtUnionCaseV0 {}
109
110impl ReadXdr for ScSpecUdtUnionCaseV0 {
111 #[cfg(feature = "std")]
112 fn read_xdr<R: Read>(r: &mut Limited<R>) -> Result<Self, Error> {
113 r.with_limited_depth(|r| {
114 let dv: ScSpecUdtUnionCaseV0Kind = <ScSpecUdtUnionCaseV0Kind as ReadXdr>::read_xdr(r)?;
115 #[allow(clippy::match_same_arms, clippy::match_wildcard_for_single_variants)]
116 let v = match dv {
117 ScSpecUdtUnionCaseV0Kind::VoidV0 => {
118 Self::VoidV0(ScSpecUdtUnionCaseVoidV0::read_xdr(r)?)
119 }
120 ScSpecUdtUnionCaseV0Kind::TupleV0 => {
121 Self::TupleV0(ScSpecUdtUnionCaseTupleV0::read_xdr(r)?)
122 }
123 #[allow(unreachable_patterns)]
124 _ => return Err(Error::Invalid),
125 };
126 Ok(v)
127 })
128 }
129}
130
131impl WriteXdr for ScSpecUdtUnionCaseV0 {
132 #[cfg(feature = "std")]
133 fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error> {
134 w.with_limited_depth(|w| {
135 self.discriminant().write_xdr(w)?;
136 #[allow(clippy::match_same_arms)]
137 match self {
138 Self::VoidV0(v) => v.write_xdr(w)?,
139 Self::TupleV0(v) => v.write_xdr(w)?,
140 };
141 Ok(())
142 })
143 }
144}