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