stellar_xdr/generated/
manage_offer_success_result_offer.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 ManageOfferSuccessResultOffer {
30 Created(OfferEntry),
31 Updated(OfferEntry),
32 Deleted,
33}
34
35#[cfg(feature = "alloc")]
36impl Default for ManageOfferSuccessResultOffer {
37 fn default() -> Self {
38 Self::Created(OfferEntry::default())
39 }
40}
41
42impl ManageOfferSuccessResultOffer {
43 const _VARIANTS: &[ManageOfferEffect] = &[
44 ManageOfferEffect::Created,
45 ManageOfferEffect::Updated,
46 ManageOfferEffect::Deleted,
47 ];
48 pub const VARIANTS: [ManageOfferEffect; Self::_VARIANTS.len()] = {
49 let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()];
50 let mut i = 1;
51 while i < Self::_VARIANTS.len() {
52 arr[i] = Self::_VARIANTS[i];
53 i += 1;
54 }
55 arr
56 };
57 const _VARIANTS_STR: &[&str] = &["Created", "Updated", "Deleted"];
58 pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = {
59 let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()];
60 let mut i = 1;
61 while i < Self::_VARIANTS_STR.len() {
62 arr[i] = Self::_VARIANTS_STR[i];
63 i += 1;
64 }
65 arr
66 };
67
68 #[must_use]
69 pub const fn name(&self) -> &'static str {
70 match self {
71 Self::Created(_) => "Created",
72 Self::Updated(_) => "Updated",
73 Self::Deleted => "Deleted",
74 }
75 }
76
77 #[must_use]
78 pub const fn discriminant(&self) -> ManageOfferEffect {
79 #[allow(clippy::match_same_arms)]
80 match self {
81 Self::Created(_) => ManageOfferEffect::Created,
82 Self::Updated(_) => ManageOfferEffect::Updated,
83 Self::Deleted => ManageOfferEffect::Deleted,
84 }
85 }
86
87 #[must_use]
88 pub const fn variants() -> [ManageOfferEffect; Self::_VARIANTS.len()] {
89 Self::VARIANTS
90 }
91}
92
93impl Name for ManageOfferSuccessResultOffer {
94 #[must_use]
95 fn name(&self) -> &'static str {
96 Self::name(self)
97 }
98}
99
100impl Discriminant<ManageOfferEffect> for ManageOfferSuccessResultOffer {
101 #[must_use]
102 fn discriminant(&self) -> ManageOfferEffect {
103 Self::discriminant(self)
104 }
105}
106
107impl Variants<ManageOfferEffect> for ManageOfferSuccessResultOffer {
108 fn variants() -> slice::Iter<'static, ManageOfferEffect> {
109 Self::VARIANTS.iter()
110 }
111}
112
113impl Union<ManageOfferEffect> for ManageOfferSuccessResultOffer {}
114
115impl ReadXdr for ManageOfferSuccessResultOffer {
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 dv: ManageOfferEffect = <ManageOfferEffect as ReadXdr>::read_xdr(r)?;
120 #[allow(clippy::match_same_arms, clippy::match_wildcard_for_single_variants)]
121 let v = match dv {
122 ManageOfferEffect::Created => Self::Created(OfferEntry::read_xdr(r)?),
123 ManageOfferEffect::Updated => Self::Updated(OfferEntry::read_xdr(r)?),
124 ManageOfferEffect::Deleted => Self::Deleted,
125 #[allow(unreachable_patterns)]
126 _ => return Err(Error::Invalid),
127 };
128 Ok(v)
129 })
130 }
131}
132
133impl WriteXdr for ManageOfferSuccessResultOffer {
134 #[cfg(feature = "std")]
135 fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error> {
136 w.with_limited_depth(|w| {
137 self.discriminant().write_xdr(w)?;
138 #[allow(clippy::match_same_arms)]
139 match self {
140 Self::Created(v) => v.write_xdr(w)?,
141 Self::Updated(v) => v.write_xdr(w)?,
142 Self::Deleted => ().write_xdr(w)?,
143 };
144 Ok(())
145 })
146 }
147}