substrate_stellar_xdr/
xdr.rs

1//! Autogenerated XDR types
2// This code has been automatically generated on 2021-07-15
3// using the project https://github.com/pendulum-chain/substrate-stellar-xdr-generator
4// Do not edit this code by hand!
5
6#[allow(unused_imports)]
7use crate::compound_types::{
8    LimitedString, LimitedVarArray, LimitedVarOpaque, UnlimitedString, UnlimitedVarArray,
9    UnlimitedVarOpaque,
10};
11#[allow(unused_imports)]
12use crate::streams::{DecodeError, ReadStream, WriteStream};
13#[allow(unused_imports)]
14use crate::xdr_codec::XdrCodec;
15#[allow(unused_imports)]
16use core::convert::AsRef;
17#[allow(unused_imports)]
18use sp_std::{boxed::Box, prelude::*};
19
20/// Autogenerated definition for constant MASK_ACCOUNT_FLAGS
21#[allow(dead_code)]
22pub const MASK_ACCOUNT_FLAGS: i32 = 7;
23/// Autogenerated definition for constant MASK_ACCOUNT_FLAGS_V17
24#[allow(dead_code)]
25pub const MASK_ACCOUNT_FLAGS_V17: i32 = 15;
26/// Autogenerated definition for constant MAX_SIGNERS
27#[allow(dead_code)]
28pub const MAX_SIGNERS: i32 = 20;
29/// Autogenerated definition for constant MASK_TRUSTLINE_FLAGS
30#[allow(dead_code)]
31pub const MASK_TRUSTLINE_FLAGS: i32 = 1;
32/// Autogenerated definition for constant MASK_TRUSTLINE_FLAGS_V13
33#[allow(dead_code)]
34pub const MASK_TRUSTLINE_FLAGS_V13: i32 = 3;
35/// Autogenerated definition for constant MASK_TRUSTLINE_FLAGS_V17
36#[allow(dead_code)]
37pub const MASK_TRUSTLINE_FLAGS_V17: i32 = 7;
38/// Autogenerated definition for constant MASK_OFFERENTRY_FLAGS
39#[allow(dead_code)]
40pub const MASK_OFFERENTRY_FLAGS: i32 = 1;
41/// Autogenerated definition for constant MASK_CLAIMABLE_BALANCE_FLAGS
42#[allow(dead_code)]
43pub const MASK_CLAIMABLE_BALANCE_FLAGS: i32 = 1;
44/// Autogenerated definition for constant LIQUIDITY_POOL_FEE_V18
45#[allow(dead_code)]
46pub const LIQUIDITY_POOL_FEE_V18: i32 = 30;
47/// Autogenerated definition for constant MAX_OPS_PER_TX
48#[allow(dead_code)]
49pub const MAX_OPS_PER_TX: i32 = 100;
50
51/// Autogenerated definition for type Value
52#[allow(dead_code)]
53#[cfg(feature = "all-types")]
54pub type Value = UnlimitedVarOpaque;
55
56/// Autogenerated definition for type ScpBallot
57#[allow(dead_code)]
58#[cfg(feature = "all-types")]
59#[derive(Debug, Clone, Eq, PartialEq)]
60pub struct ScpBallot {
61    pub counter: Uint32,
62    pub value: Value,
63}
64
65#[cfg(feature = "all-types")]
66impl XdrCodec for ScpBallot {
67    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
68        self.counter.to_xdr_buffered(write_stream);
69        self.value.to_xdr_buffered(write_stream);
70    }
71
72    fn from_xdr_buffered<T: AsRef<[u8]>>(
73        read_stream: &mut ReadStream<T>,
74    ) -> Result<Self, DecodeError> {
75        Ok(ScpBallot {
76            counter: Uint32::from_xdr_buffered(read_stream)?,
77            value: Value::from_xdr_buffered(read_stream)?,
78        })
79    }
80}
81
82/// Autogenerated definition for type ScpStatementType
83#[allow(dead_code)]
84#[cfg(feature = "all-types")]
85#[derive(Debug, Copy, Clone, Eq, PartialEq)]
86pub enum ScpStatementType {
87    ScpStPrepare = 0,
88    ScpStConfirm = 1,
89    ScpStExternalize = 2,
90    ScpStNominate = 3,
91}
92
93#[cfg(feature = "all-types")]
94impl XdrCodec for ScpStatementType {
95    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
96        let value = *self as i32;
97        value.to_xdr_buffered(write_stream);
98    }
99
100    fn from_xdr_buffered<T: AsRef<[u8]>>(
101        read_stream: &mut ReadStream<T>,
102    ) -> Result<Self, DecodeError> {
103        let enum_value = i32::from_xdr_buffered(read_stream)?;
104        match enum_value {
105            0 => Ok(ScpStatementType::ScpStPrepare),
106            1 => Ok(ScpStatementType::ScpStConfirm),
107            2 => Ok(ScpStatementType::ScpStExternalize),
108            3 => Ok(ScpStatementType::ScpStNominate),
109            _ => Err(DecodeError::InvalidEnumDiscriminator {
110                at_position: read_stream.get_position(),
111            }),
112        }
113    }
114}
115
116/// Autogenerated definition for type ScpNomination
117#[allow(dead_code)]
118#[cfg(feature = "all-types")]
119#[derive(Debug, Clone, Eq, PartialEq)]
120pub struct ScpNomination {
121    pub quorum_set_hash: Hash,
122    pub votes: UnlimitedVarArray<Value>,
123    pub accepted: UnlimitedVarArray<Value>,
124}
125
126#[cfg(feature = "all-types")]
127impl XdrCodec for ScpNomination {
128    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
129        self.quorum_set_hash.to_xdr_buffered(write_stream);
130        self.votes.to_xdr_buffered(write_stream);
131        self.accepted.to_xdr_buffered(write_stream);
132    }
133
134    fn from_xdr_buffered<T: AsRef<[u8]>>(
135        read_stream: &mut ReadStream<T>,
136    ) -> Result<Self, DecodeError> {
137        Ok(ScpNomination {
138            quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
139            votes: UnlimitedVarArray::<Value>::from_xdr_buffered(read_stream)?,
140            accepted: UnlimitedVarArray::<Value>::from_xdr_buffered(read_stream)?,
141        })
142    }
143}
144
145/// Autogenerated definition for type ScpStatementPrepare
146#[allow(dead_code)]
147#[cfg(feature = "all-types")]
148#[derive(Debug, Clone, Eq, PartialEq)]
149pub struct ScpStatementPrepare {
150    pub quorum_set_hash: Hash,
151    pub ballot: ScpBallot,
152    pub prepared: Option<ScpBallot>,
153    pub prepared_prime: Option<ScpBallot>,
154    pub n_c: Uint32,
155    pub n_h: Uint32,
156}
157
158#[cfg(feature = "all-types")]
159impl XdrCodec for ScpStatementPrepare {
160    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
161        self.quorum_set_hash.to_xdr_buffered(write_stream);
162        self.ballot.to_xdr_buffered(write_stream);
163        self.prepared.to_xdr_buffered(write_stream);
164        self.prepared_prime.to_xdr_buffered(write_stream);
165        self.n_c.to_xdr_buffered(write_stream);
166        self.n_h.to_xdr_buffered(write_stream);
167    }
168
169    fn from_xdr_buffered<T: AsRef<[u8]>>(
170        read_stream: &mut ReadStream<T>,
171    ) -> Result<Self, DecodeError> {
172        Ok(ScpStatementPrepare {
173            quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
174            ballot: ScpBallot::from_xdr_buffered(read_stream)?,
175            prepared: Option::<ScpBallot>::from_xdr_buffered(read_stream)?,
176            prepared_prime: Option::<ScpBallot>::from_xdr_buffered(read_stream)?,
177            n_c: Uint32::from_xdr_buffered(read_stream)?,
178            n_h: Uint32::from_xdr_buffered(read_stream)?,
179        })
180    }
181}
182
183/// Autogenerated definition for type ScpStatementConfirm
184#[allow(dead_code)]
185#[cfg(feature = "all-types")]
186#[derive(Debug, Clone, Eq, PartialEq)]
187pub struct ScpStatementConfirm {
188    pub ballot: ScpBallot,
189    pub n_prepared: Uint32,
190    pub n_commit: Uint32,
191    pub n_h: Uint32,
192    pub quorum_set_hash: Hash,
193}
194
195#[cfg(feature = "all-types")]
196impl XdrCodec for ScpStatementConfirm {
197    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
198        self.ballot.to_xdr_buffered(write_stream);
199        self.n_prepared.to_xdr_buffered(write_stream);
200        self.n_commit.to_xdr_buffered(write_stream);
201        self.n_h.to_xdr_buffered(write_stream);
202        self.quorum_set_hash.to_xdr_buffered(write_stream);
203    }
204
205    fn from_xdr_buffered<T: AsRef<[u8]>>(
206        read_stream: &mut ReadStream<T>,
207    ) -> Result<Self, DecodeError> {
208        Ok(ScpStatementConfirm {
209            ballot: ScpBallot::from_xdr_buffered(read_stream)?,
210            n_prepared: Uint32::from_xdr_buffered(read_stream)?,
211            n_commit: Uint32::from_xdr_buffered(read_stream)?,
212            n_h: Uint32::from_xdr_buffered(read_stream)?,
213            quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
214        })
215    }
216}
217
218/// Autogenerated definition for type ScpStatementExternalize
219#[allow(dead_code)]
220#[cfg(feature = "all-types")]
221#[derive(Debug, Clone, Eq, PartialEq)]
222pub struct ScpStatementExternalize {
223    pub commit: ScpBallot,
224    pub n_h: Uint32,
225    pub commit_quorum_set_hash: Hash,
226}
227
228#[cfg(feature = "all-types")]
229impl XdrCodec for ScpStatementExternalize {
230    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
231        self.commit.to_xdr_buffered(write_stream);
232        self.n_h.to_xdr_buffered(write_stream);
233        self.commit_quorum_set_hash.to_xdr_buffered(write_stream);
234    }
235
236    fn from_xdr_buffered<T: AsRef<[u8]>>(
237        read_stream: &mut ReadStream<T>,
238    ) -> Result<Self, DecodeError> {
239        Ok(ScpStatementExternalize {
240            commit: ScpBallot::from_xdr_buffered(read_stream)?,
241            n_h: Uint32::from_xdr_buffered(read_stream)?,
242            commit_quorum_set_hash: Hash::from_xdr_buffered(read_stream)?,
243        })
244    }
245}
246
247/// Autogenerated definition for type ScpStatement
248#[allow(dead_code)]
249#[cfg(feature = "all-types")]
250#[derive(Debug, Clone, Eq, PartialEq)]
251pub struct ScpStatement {
252    pub node_id: NodeId,
253    pub slot_index: Uint64,
254    pub pledges: ScpStatementPledges,
255}
256
257#[cfg(feature = "all-types")]
258impl XdrCodec for ScpStatement {
259    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
260        self.node_id.to_xdr_buffered(write_stream);
261        self.slot_index.to_xdr_buffered(write_stream);
262        self.pledges.to_xdr_buffered(write_stream);
263    }
264
265    fn from_xdr_buffered<T: AsRef<[u8]>>(
266        read_stream: &mut ReadStream<T>,
267    ) -> Result<Self, DecodeError> {
268        Ok(ScpStatement {
269            node_id: NodeId::from_xdr_buffered(read_stream)?,
270            slot_index: Uint64::from_xdr_buffered(read_stream)?,
271            pledges: ScpStatementPledges::from_xdr_buffered(read_stream)?,
272        })
273    }
274}
275
276/// Autogenerated definition for type ScpEnvelope
277#[allow(dead_code)]
278#[cfg(feature = "all-types")]
279#[derive(Debug, Clone, Eq, PartialEq)]
280pub struct ScpEnvelope {
281    pub statement: ScpStatement,
282    pub signature: Signature,
283}
284
285#[cfg(feature = "all-types")]
286impl XdrCodec for ScpEnvelope {
287    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
288        self.statement.to_xdr_buffered(write_stream);
289        self.signature.to_xdr_buffered(write_stream);
290    }
291
292    fn from_xdr_buffered<T: AsRef<[u8]>>(
293        read_stream: &mut ReadStream<T>,
294    ) -> Result<Self, DecodeError> {
295        Ok(ScpEnvelope {
296            statement: ScpStatement::from_xdr_buffered(read_stream)?,
297            signature: Signature::from_xdr_buffered(read_stream)?,
298        })
299    }
300}
301
302/// Autogenerated definition for type ScpQuorumSet
303#[allow(dead_code)]
304#[cfg(feature = "all-types")]
305#[derive(Debug, Clone, Eq, PartialEq)]
306pub struct ScpQuorumSet {
307    pub threshold: Uint32,
308    pub validators: UnlimitedVarArray<NodeId>,
309    pub inner_sets: UnlimitedVarArray<ScpQuorumSet>,
310}
311
312#[cfg(feature = "all-types")]
313impl XdrCodec for ScpQuorumSet {
314    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
315        self.threshold.to_xdr_buffered(write_stream);
316        self.validators.to_xdr_buffered(write_stream);
317        self.inner_sets.to_xdr_buffered(write_stream);
318    }
319
320    fn from_xdr_buffered<T: AsRef<[u8]>>(
321        read_stream: &mut ReadStream<T>,
322    ) -> Result<Self, DecodeError> {
323        Ok(ScpQuorumSet {
324            threshold: Uint32::from_xdr_buffered(read_stream)?,
325            validators: UnlimitedVarArray::<NodeId>::from_xdr_buffered(read_stream)?,
326            inner_sets: UnlimitedVarArray::<ScpQuorumSet>::from_xdr_buffered(read_stream)?,
327        })
328    }
329}
330
331/// Autogenerated definition for type AccountId
332#[allow(dead_code)]
333pub type AccountId = PublicKey;
334
335/// Autogenerated definition for type Thresholds
336#[allow(dead_code)]
337pub type Thresholds = [u8; 4];
338
339/// Autogenerated definition for type String32
340#[allow(dead_code)]
341pub type String32 = LimitedString<32>;
342
343/// Autogenerated definition for type String64
344#[allow(dead_code)]
345pub type String64 = LimitedString<64>;
346
347/// Autogenerated definition for type SequenceNumber
348#[allow(dead_code)]
349pub type SequenceNumber = Int64;
350
351/// Autogenerated definition for type TimePoint
352#[allow(dead_code)]
353pub type TimePoint = Uint64;
354
355/// Autogenerated definition for type DataValue
356#[allow(dead_code)]
357pub type DataValue = LimitedVarOpaque<64>;
358
359/// Autogenerated definition for type PoolId
360#[allow(dead_code)]
361pub type PoolId = Hash;
362
363/// Autogenerated definition for type AssetCode4
364#[allow(dead_code)]
365pub type AssetCode4 = [u8; 4];
366
367/// Autogenerated definition for type AssetCode12
368#[allow(dead_code)]
369pub type AssetCode12 = [u8; 12];
370
371/// Autogenerated definition for type AssetType
372#[allow(dead_code)]
373#[derive(Debug, Copy, Clone, Eq, PartialEq)]
374pub enum AssetType {
375    AssetTypeNative = 0,
376    AssetTypeCreditAlphanum4 = 1,
377    AssetTypeCreditAlphanum12 = 2,
378    AssetTypePoolShare = 3,
379}
380
381impl XdrCodec for AssetType {
382    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
383        let value = *self as i32;
384        value.to_xdr_buffered(write_stream);
385    }
386
387    fn from_xdr_buffered<T: AsRef<[u8]>>(
388        read_stream: &mut ReadStream<T>,
389    ) -> Result<Self, DecodeError> {
390        let enum_value = i32::from_xdr_buffered(read_stream)?;
391        match enum_value {
392            0 => Ok(AssetType::AssetTypeNative),
393            1 => Ok(AssetType::AssetTypeCreditAlphanum4),
394            2 => Ok(AssetType::AssetTypeCreditAlphanum12),
395            3 => Ok(AssetType::AssetTypePoolShare),
396            _ => Err(DecodeError::InvalidEnumDiscriminator {
397                at_position: read_stream.get_position(),
398            }),
399        }
400    }
401}
402
403/// Autogenerated definition for type AlphaNum4
404#[allow(dead_code)]
405#[derive(Debug, Clone, Eq, PartialEq)]
406pub struct AlphaNum4 {
407    pub asset_code: AssetCode4,
408    pub issuer: AccountId,
409}
410
411impl XdrCodec for AlphaNum4 {
412    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
413        self.asset_code.to_xdr_buffered(write_stream);
414        self.issuer.to_xdr_buffered(write_stream);
415    }
416
417    fn from_xdr_buffered<T: AsRef<[u8]>>(
418        read_stream: &mut ReadStream<T>,
419    ) -> Result<Self, DecodeError> {
420        Ok(AlphaNum4 {
421            asset_code: AssetCode4::from_xdr_buffered(read_stream)?,
422            issuer: AccountId::from_xdr_buffered(read_stream)?,
423        })
424    }
425}
426
427/// Autogenerated definition for type AlphaNum12
428#[allow(dead_code)]
429#[derive(Debug, Clone, Eq, PartialEq)]
430pub struct AlphaNum12 {
431    pub asset_code: AssetCode12,
432    pub issuer: AccountId,
433}
434
435impl XdrCodec for AlphaNum12 {
436    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
437        self.asset_code.to_xdr_buffered(write_stream);
438        self.issuer.to_xdr_buffered(write_stream);
439    }
440
441    fn from_xdr_buffered<T: AsRef<[u8]>>(
442        read_stream: &mut ReadStream<T>,
443    ) -> Result<Self, DecodeError> {
444        Ok(AlphaNum12 {
445            asset_code: AssetCode12::from_xdr_buffered(read_stream)?,
446            issuer: AccountId::from_xdr_buffered(read_stream)?,
447        })
448    }
449}
450
451/// Autogenerated definition for type Price
452#[allow(dead_code)]
453#[derive(Debug, Clone, Eq, PartialEq)]
454pub struct Price {
455    pub n: Int32,
456    pub d: Int32,
457}
458
459impl XdrCodec for Price {
460    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
461        self.n.to_xdr_buffered(write_stream);
462        self.d.to_xdr_buffered(write_stream);
463    }
464
465    fn from_xdr_buffered<T: AsRef<[u8]>>(
466        read_stream: &mut ReadStream<T>,
467    ) -> Result<Self, DecodeError> {
468        Ok(Price {
469            n: Int32::from_xdr_buffered(read_stream)?,
470            d: Int32::from_xdr_buffered(read_stream)?,
471        })
472    }
473}
474
475/// Autogenerated definition for type Liabilities
476#[allow(dead_code)]
477#[derive(Debug, Clone, Eq, PartialEq)]
478pub struct Liabilities {
479    pub buying: Int64,
480    pub selling: Int64,
481}
482
483impl XdrCodec for Liabilities {
484    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
485        self.buying.to_xdr_buffered(write_stream);
486        self.selling.to_xdr_buffered(write_stream);
487    }
488
489    fn from_xdr_buffered<T: AsRef<[u8]>>(
490        read_stream: &mut ReadStream<T>,
491    ) -> Result<Self, DecodeError> {
492        Ok(Liabilities {
493            buying: Int64::from_xdr_buffered(read_stream)?,
494            selling: Int64::from_xdr_buffered(read_stream)?,
495        })
496    }
497}
498
499/// Autogenerated definition for type ThresholdIndices
500#[allow(dead_code)]
501#[cfg(feature = "all-types")]
502#[derive(Debug, Copy, Clone, Eq, PartialEq)]
503pub enum ThresholdIndices {
504    ThresholdMasterWeight = 0,
505    ThresholdLow = 1,
506    ThresholdMed = 2,
507    ThresholdHigh = 3,
508}
509
510#[cfg(feature = "all-types")]
511impl XdrCodec for ThresholdIndices {
512    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
513        let value = *self as i32;
514        value.to_xdr_buffered(write_stream);
515    }
516
517    fn from_xdr_buffered<T: AsRef<[u8]>>(
518        read_stream: &mut ReadStream<T>,
519    ) -> Result<Self, DecodeError> {
520        let enum_value = i32::from_xdr_buffered(read_stream)?;
521        match enum_value {
522            0 => Ok(ThresholdIndices::ThresholdMasterWeight),
523            1 => Ok(ThresholdIndices::ThresholdLow),
524            2 => Ok(ThresholdIndices::ThresholdMed),
525            3 => Ok(ThresholdIndices::ThresholdHigh),
526            _ => Err(DecodeError::InvalidEnumDiscriminator {
527                at_position: read_stream.get_position(),
528            }),
529        }
530    }
531}
532
533/// Autogenerated definition for type LedgerEntryType
534#[allow(dead_code)]
535#[derive(Debug, Copy, Clone, Eq, PartialEq)]
536pub enum LedgerEntryType {
537    Account = 0,
538    Trustline = 1,
539    Offer = 2,
540    Data = 3,
541    ClaimableBalance = 4,
542    LiquidityPool = 5,
543}
544
545impl XdrCodec for LedgerEntryType {
546    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
547        let value = *self as i32;
548        value.to_xdr_buffered(write_stream);
549    }
550
551    fn from_xdr_buffered<T: AsRef<[u8]>>(
552        read_stream: &mut ReadStream<T>,
553    ) -> Result<Self, DecodeError> {
554        let enum_value = i32::from_xdr_buffered(read_stream)?;
555        match enum_value {
556            0 => Ok(LedgerEntryType::Account),
557            1 => Ok(LedgerEntryType::Trustline),
558            2 => Ok(LedgerEntryType::Offer),
559            3 => Ok(LedgerEntryType::Data),
560            4 => Ok(LedgerEntryType::ClaimableBalance),
561            5 => Ok(LedgerEntryType::LiquidityPool),
562            _ => Err(DecodeError::InvalidEnumDiscriminator {
563                at_position: read_stream.get_position(),
564            }),
565        }
566    }
567}
568
569/// Autogenerated definition for type Signer
570#[allow(dead_code)]
571#[derive(Debug, Clone, Eq, PartialEq)]
572pub struct Signer {
573    pub key: SignerKey,
574    pub weight: Uint32,
575}
576
577impl XdrCodec for Signer {
578    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
579        self.key.to_xdr_buffered(write_stream);
580        self.weight.to_xdr_buffered(write_stream);
581    }
582
583    fn from_xdr_buffered<T: AsRef<[u8]>>(
584        read_stream: &mut ReadStream<T>,
585    ) -> Result<Self, DecodeError> {
586        Ok(Signer {
587            key: SignerKey::from_xdr_buffered(read_stream)?,
588            weight: Uint32::from_xdr_buffered(read_stream)?,
589        })
590    }
591}
592
593/// Autogenerated definition for type AccountFlags
594#[allow(dead_code)]
595#[cfg(feature = "all-types")]
596#[derive(Debug, Copy, Clone, Eq, PartialEq)]
597pub enum AccountFlags {
598    AuthRequiredFlag = 1,
599    AuthRevocableFlag = 2,
600    AuthImmutableFlag = 4,
601    AuthClawbackEnabledFlag = 8,
602}
603
604#[cfg(feature = "all-types")]
605impl XdrCodec for AccountFlags {
606    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
607        let value = *self as i32;
608        value.to_xdr_buffered(write_stream);
609    }
610
611    fn from_xdr_buffered<T: AsRef<[u8]>>(
612        read_stream: &mut ReadStream<T>,
613    ) -> Result<Self, DecodeError> {
614        let enum_value = i32::from_xdr_buffered(read_stream)?;
615        match enum_value {
616            1 => Ok(AccountFlags::AuthRequiredFlag),
617            2 => Ok(AccountFlags::AuthRevocableFlag),
618            4 => Ok(AccountFlags::AuthImmutableFlag),
619            8 => Ok(AccountFlags::AuthClawbackEnabledFlag),
620            _ => Err(DecodeError::InvalidEnumDiscriminator {
621                at_position: read_stream.get_position(),
622            }),
623        }
624    }
625}
626
627/// Autogenerated definition for type SponsorshipDescriptor
628#[allow(dead_code)]
629pub type SponsorshipDescriptor = Option<AccountId>;
630
631/// Autogenerated definition for type AccountEntryExtensionV2
632#[allow(dead_code)]
633#[derive(Debug, Clone, Eq, PartialEq)]
634pub struct AccountEntryExtensionV2 {
635    pub num_sponsored: Uint32,
636    pub num_sponsoring: Uint32,
637    pub signer_sponsoring_i_ds: LimitedVarArray<SponsorshipDescriptor, MAX_SIGNERS>,
638    pub ext: AccountEntryExtensionV2Ext,
639}
640
641impl XdrCodec for AccountEntryExtensionV2 {
642    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
643        self.num_sponsored.to_xdr_buffered(write_stream);
644        self.num_sponsoring.to_xdr_buffered(write_stream);
645        self.signer_sponsoring_i_ds.to_xdr_buffered(write_stream);
646        self.ext.to_xdr_buffered(write_stream);
647    }
648
649    fn from_xdr_buffered<T: AsRef<[u8]>>(
650        read_stream: &mut ReadStream<T>,
651    ) -> Result<Self, DecodeError> {
652        Ok(AccountEntryExtensionV2 {
653            num_sponsored: Uint32::from_xdr_buffered(read_stream)?,
654            num_sponsoring: Uint32::from_xdr_buffered(read_stream)?,
655            signer_sponsoring_i_ds:
656                LimitedVarArray::<SponsorshipDescriptor, MAX_SIGNERS>::from_xdr_buffered(
657                    read_stream,
658                )?,
659            ext: AccountEntryExtensionV2Ext::from_xdr_buffered(read_stream)?,
660        })
661    }
662}
663
664/// Autogenerated definition for type AccountEntryExtensionV1
665#[allow(dead_code)]
666#[derive(Debug, Clone, Eq, PartialEq)]
667pub struct AccountEntryExtensionV1 {
668    pub liabilities: Liabilities,
669    pub ext: AccountEntryExtensionV1Ext,
670}
671
672impl XdrCodec for AccountEntryExtensionV1 {
673    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
674        self.liabilities.to_xdr_buffered(write_stream);
675        self.ext.to_xdr_buffered(write_stream);
676    }
677
678    fn from_xdr_buffered<T: AsRef<[u8]>>(
679        read_stream: &mut ReadStream<T>,
680    ) -> Result<Self, DecodeError> {
681        Ok(AccountEntryExtensionV1 {
682            liabilities: Liabilities::from_xdr_buffered(read_stream)?,
683            ext: AccountEntryExtensionV1Ext::from_xdr_buffered(read_stream)?,
684        })
685    }
686}
687
688/// Autogenerated definition for type AccountEntry
689#[allow(dead_code)]
690#[derive(Debug, Clone, Eq, PartialEq)]
691pub struct AccountEntry {
692    pub account_id: AccountId,
693    pub balance: Int64,
694    pub seq_num: SequenceNumber,
695    pub num_sub_entries: Uint32,
696    pub inflation_dest: Option<AccountId>,
697    pub flags: Uint32,
698    pub home_domain: String32,
699    pub thresholds: Thresholds,
700    pub signers: LimitedVarArray<Signer, MAX_SIGNERS>,
701    pub ext: AccountEntryExt,
702}
703
704impl XdrCodec for AccountEntry {
705    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
706        self.account_id.to_xdr_buffered(write_stream);
707        self.balance.to_xdr_buffered(write_stream);
708        self.seq_num.to_xdr_buffered(write_stream);
709        self.num_sub_entries.to_xdr_buffered(write_stream);
710        self.inflation_dest.to_xdr_buffered(write_stream);
711        self.flags.to_xdr_buffered(write_stream);
712        self.home_domain.to_xdr_buffered(write_stream);
713        self.thresholds.to_xdr_buffered(write_stream);
714        self.signers.to_xdr_buffered(write_stream);
715        self.ext.to_xdr_buffered(write_stream);
716    }
717
718    fn from_xdr_buffered<T: AsRef<[u8]>>(
719        read_stream: &mut ReadStream<T>,
720    ) -> Result<Self, DecodeError> {
721        Ok(AccountEntry {
722            account_id: AccountId::from_xdr_buffered(read_stream)?,
723            balance: Int64::from_xdr_buffered(read_stream)?,
724            seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
725            num_sub_entries: Uint32::from_xdr_buffered(read_stream)?,
726            inflation_dest: Option::<AccountId>::from_xdr_buffered(read_stream)?,
727            flags: Uint32::from_xdr_buffered(read_stream)?,
728            home_domain: String32::from_xdr_buffered(read_stream)?,
729            thresholds: Thresholds::from_xdr_buffered(read_stream)?,
730            signers: LimitedVarArray::<Signer, MAX_SIGNERS>::from_xdr_buffered(read_stream)?,
731            ext: AccountEntryExt::from_xdr_buffered(read_stream)?,
732        })
733    }
734}
735
736/// Autogenerated definition for type TrustLineFlags
737#[allow(dead_code)]
738#[cfg(feature = "all-types")]
739#[derive(Debug, Copy, Clone, Eq, PartialEq)]
740pub enum TrustLineFlags {
741    AuthorizedFlag = 1,
742    AuthorizedToMaintainLiabilitiesFlag = 2,
743    TrustlineClawbackEnabledFlag = 4,
744}
745
746#[cfg(feature = "all-types")]
747impl XdrCodec for TrustLineFlags {
748    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
749        let value = *self as i32;
750        value.to_xdr_buffered(write_stream);
751    }
752
753    fn from_xdr_buffered<T: AsRef<[u8]>>(
754        read_stream: &mut ReadStream<T>,
755    ) -> Result<Self, DecodeError> {
756        let enum_value = i32::from_xdr_buffered(read_stream)?;
757        match enum_value {
758            1 => Ok(TrustLineFlags::AuthorizedFlag),
759            2 => Ok(TrustLineFlags::AuthorizedToMaintainLiabilitiesFlag),
760            4 => Ok(TrustLineFlags::TrustlineClawbackEnabledFlag),
761            _ => Err(DecodeError::InvalidEnumDiscriminator {
762                at_position: read_stream.get_position(),
763            }),
764        }
765    }
766}
767
768/// Autogenerated definition for type LiquidityPoolType
769#[allow(dead_code)]
770#[derive(Debug, Copy, Clone, Eq, PartialEq)]
771pub enum LiquidityPoolType {
772    LiquidityPoolConstantProduct = 0,
773}
774
775impl XdrCodec for LiquidityPoolType {
776    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
777        let value = *self as i32;
778        value.to_xdr_buffered(write_stream);
779    }
780
781    fn from_xdr_buffered<T: AsRef<[u8]>>(
782        read_stream: &mut ReadStream<T>,
783    ) -> Result<Self, DecodeError> {
784        let enum_value = i32::from_xdr_buffered(read_stream)?;
785        match enum_value {
786            0 => Ok(LiquidityPoolType::LiquidityPoolConstantProduct),
787            _ => Err(DecodeError::InvalidEnumDiscriminator {
788                at_position: read_stream.get_position(),
789            }),
790        }
791    }
792}
793
794/// Autogenerated definition for type TrustLineEntryV1
795#[allow(dead_code)]
796#[derive(Debug, Clone, Eq, PartialEq)]
797pub struct TrustLineEntryV1 {
798    pub liabilities: Liabilities,
799    pub ext: TrustLineEntryV1Ext,
800}
801
802impl XdrCodec for TrustLineEntryV1 {
803    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
804        self.liabilities.to_xdr_buffered(write_stream);
805        self.ext.to_xdr_buffered(write_stream);
806    }
807
808    fn from_xdr_buffered<T: AsRef<[u8]>>(
809        read_stream: &mut ReadStream<T>,
810    ) -> Result<Self, DecodeError> {
811        Ok(TrustLineEntryV1 {
812            liabilities: Liabilities::from_xdr_buffered(read_stream)?,
813            ext: TrustLineEntryV1Ext::from_xdr_buffered(read_stream)?,
814        })
815    }
816}
817
818/// Autogenerated definition for type TrustLineEntry
819#[allow(dead_code)]
820#[derive(Debug, Clone, Eq, PartialEq)]
821pub struct TrustLineEntry {
822    pub account_id: AccountId,
823    pub asset: TrustLineAsset,
824    pub balance: Int64,
825    pub limit: Int64,
826    pub flags: Uint32,
827    pub ext: TrustLineEntryExt,
828}
829
830impl XdrCodec for TrustLineEntry {
831    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
832        self.account_id.to_xdr_buffered(write_stream);
833        self.asset.to_xdr_buffered(write_stream);
834        self.balance.to_xdr_buffered(write_stream);
835        self.limit.to_xdr_buffered(write_stream);
836        self.flags.to_xdr_buffered(write_stream);
837        self.ext.to_xdr_buffered(write_stream);
838    }
839
840    fn from_xdr_buffered<T: AsRef<[u8]>>(
841        read_stream: &mut ReadStream<T>,
842    ) -> Result<Self, DecodeError> {
843        Ok(TrustLineEntry {
844            account_id: AccountId::from_xdr_buffered(read_stream)?,
845            asset: TrustLineAsset::from_xdr_buffered(read_stream)?,
846            balance: Int64::from_xdr_buffered(read_stream)?,
847            limit: Int64::from_xdr_buffered(read_stream)?,
848            flags: Uint32::from_xdr_buffered(read_stream)?,
849            ext: TrustLineEntryExt::from_xdr_buffered(read_stream)?,
850        })
851    }
852}
853
854/// Autogenerated definition for type OfferEntryFlags
855#[allow(dead_code)]
856#[cfg(feature = "all-types")]
857#[derive(Debug, Copy, Clone, Eq, PartialEq)]
858pub enum OfferEntryFlags {
859    PassiveFlag = 1,
860}
861
862#[cfg(feature = "all-types")]
863impl XdrCodec for OfferEntryFlags {
864    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
865        let value = *self as i32;
866        value.to_xdr_buffered(write_stream);
867    }
868
869    fn from_xdr_buffered<T: AsRef<[u8]>>(
870        read_stream: &mut ReadStream<T>,
871    ) -> Result<Self, DecodeError> {
872        let enum_value = i32::from_xdr_buffered(read_stream)?;
873        match enum_value {
874            1 => Ok(OfferEntryFlags::PassiveFlag),
875            _ => Err(DecodeError::InvalidEnumDiscriminator {
876                at_position: read_stream.get_position(),
877            }),
878        }
879    }
880}
881
882/// Autogenerated definition for type OfferEntry
883#[allow(dead_code)]
884#[derive(Debug, Clone, Eq, PartialEq)]
885pub struct OfferEntry {
886    pub seller_id: AccountId,
887    pub offer_id: Int64,
888    pub selling: Asset,
889    pub buying: Asset,
890    pub amount: Int64,
891    pub price: Price,
892    pub flags: Uint32,
893    pub ext: OfferEntryExt,
894}
895
896impl XdrCodec for OfferEntry {
897    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
898        self.seller_id.to_xdr_buffered(write_stream);
899        self.offer_id.to_xdr_buffered(write_stream);
900        self.selling.to_xdr_buffered(write_stream);
901        self.buying.to_xdr_buffered(write_stream);
902        self.amount.to_xdr_buffered(write_stream);
903        self.price.to_xdr_buffered(write_stream);
904        self.flags.to_xdr_buffered(write_stream);
905        self.ext.to_xdr_buffered(write_stream);
906    }
907
908    fn from_xdr_buffered<T: AsRef<[u8]>>(
909        read_stream: &mut ReadStream<T>,
910    ) -> Result<Self, DecodeError> {
911        Ok(OfferEntry {
912            seller_id: AccountId::from_xdr_buffered(read_stream)?,
913            offer_id: Int64::from_xdr_buffered(read_stream)?,
914            selling: Asset::from_xdr_buffered(read_stream)?,
915            buying: Asset::from_xdr_buffered(read_stream)?,
916            amount: Int64::from_xdr_buffered(read_stream)?,
917            price: Price::from_xdr_buffered(read_stream)?,
918            flags: Uint32::from_xdr_buffered(read_stream)?,
919            ext: OfferEntryExt::from_xdr_buffered(read_stream)?,
920        })
921    }
922}
923
924/// Autogenerated definition for type DataEntry
925#[allow(dead_code)]
926#[derive(Debug, Clone, Eq, PartialEq)]
927pub struct DataEntry {
928    pub account_id: AccountId,
929    pub data_name: String64,
930    pub data_value: DataValue,
931    pub ext: DataEntryExt,
932}
933
934impl XdrCodec for DataEntry {
935    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
936        self.account_id.to_xdr_buffered(write_stream);
937        self.data_name.to_xdr_buffered(write_stream);
938        self.data_value.to_xdr_buffered(write_stream);
939        self.ext.to_xdr_buffered(write_stream);
940    }
941
942    fn from_xdr_buffered<T: AsRef<[u8]>>(
943        read_stream: &mut ReadStream<T>,
944    ) -> Result<Self, DecodeError> {
945        Ok(DataEntry {
946            account_id: AccountId::from_xdr_buffered(read_stream)?,
947            data_name: String64::from_xdr_buffered(read_stream)?,
948            data_value: DataValue::from_xdr_buffered(read_stream)?,
949            ext: DataEntryExt::from_xdr_buffered(read_stream)?,
950        })
951    }
952}
953
954/// Autogenerated definition for type ClaimPredicateType
955#[allow(dead_code)]
956#[derive(Debug, Copy, Clone, Eq, PartialEq)]
957pub enum ClaimPredicateType {
958    ClaimPredicateUnconditional = 0,
959    ClaimPredicateAnd = 1,
960    ClaimPredicateOr = 2,
961    ClaimPredicateNot = 3,
962    ClaimPredicateBeforeAbsoluteTime = 4,
963    ClaimPredicateBeforeRelativeTime = 5,
964}
965
966impl XdrCodec for ClaimPredicateType {
967    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
968        let value = *self as i32;
969        value.to_xdr_buffered(write_stream);
970    }
971
972    fn from_xdr_buffered<T: AsRef<[u8]>>(
973        read_stream: &mut ReadStream<T>,
974    ) -> Result<Self, DecodeError> {
975        let enum_value = i32::from_xdr_buffered(read_stream)?;
976        match enum_value {
977            0 => Ok(ClaimPredicateType::ClaimPredicateUnconditional),
978            1 => Ok(ClaimPredicateType::ClaimPredicateAnd),
979            2 => Ok(ClaimPredicateType::ClaimPredicateOr),
980            3 => Ok(ClaimPredicateType::ClaimPredicateNot),
981            4 => Ok(ClaimPredicateType::ClaimPredicateBeforeAbsoluteTime),
982            5 => Ok(ClaimPredicateType::ClaimPredicateBeforeRelativeTime),
983            _ => Err(DecodeError::InvalidEnumDiscriminator {
984                at_position: read_stream.get_position(),
985            }),
986        }
987    }
988}
989
990/// Autogenerated definition for type ClaimantType
991#[allow(dead_code)]
992#[derive(Debug, Copy, Clone, Eq, PartialEq)]
993pub enum ClaimantType {
994    ClaimantTypeV0 = 0,
995}
996
997impl XdrCodec for ClaimantType {
998    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
999        let value = *self as i32;
1000        value.to_xdr_buffered(write_stream);
1001    }
1002
1003    fn from_xdr_buffered<T: AsRef<[u8]>>(
1004        read_stream: &mut ReadStream<T>,
1005    ) -> Result<Self, DecodeError> {
1006        let enum_value = i32::from_xdr_buffered(read_stream)?;
1007        match enum_value {
1008            0 => Ok(ClaimantType::ClaimantTypeV0),
1009            _ => Err(DecodeError::InvalidEnumDiscriminator {
1010                at_position: read_stream.get_position(),
1011            }),
1012        }
1013    }
1014}
1015
1016/// Autogenerated definition for type ClaimantV0
1017#[allow(dead_code)]
1018#[derive(Debug, Clone, Eq, PartialEq)]
1019pub struct ClaimantV0 {
1020    pub destination: AccountId,
1021    pub predicate: ClaimPredicate,
1022}
1023
1024impl XdrCodec for ClaimantV0 {
1025    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1026        self.destination.to_xdr_buffered(write_stream);
1027        self.predicate.to_xdr_buffered(write_stream);
1028    }
1029
1030    fn from_xdr_buffered<T: AsRef<[u8]>>(
1031        read_stream: &mut ReadStream<T>,
1032    ) -> Result<Self, DecodeError> {
1033        Ok(ClaimantV0 {
1034            destination: AccountId::from_xdr_buffered(read_stream)?,
1035            predicate: ClaimPredicate::from_xdr_buffered(read_stream)?,
1036        })
1037    }
1038}
1039
1040/// Autogenerated definition for type ClaimableBalanceIdType
1041#[allow(dead_code)]
1042#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1043pub enum ClaimableBalanceIdType {
1044    ClaimableBalanceIdTypeV0 = 0,
1045}
1046
1047impl XdrCodec for ClaimableBalanceIdType {
1048    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1049        let value = *self as i32;
1050        value.to_xdr_buffered(write_stream);
1051    }
1052
1053    fn from_xdr_buffered<T: AsRef<[u8]>>(
1054        read_stream: &mut ReadStream<T>,
1055    ) -> Result<Self, DecodeError> {
1056        let enum_value = i32::from_xdr_buffered(read_stream)?;
1057        match enum_value {
1058            0 => Ok(ClaimableBalanceIdType::ClaimableBalanceIdTypeV0),
1059            _ => Err(DecodeError::InvalidEnumDiscriminator {
1060                at_position: read_stream.get_position(),
1061            }),
1062        }
1063    }
1064}
1065
1066/// Autogenerated definition for type ClaimableBalanceFlags
1067#[allow(dead_code)]
1068#[cfg(feature = "all-types")]
1069#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1070pub enum ClaimableBalanceFlags {
1071    ClaimableBalanceClawbackEnabledFlag = 1,
1072}
1073
1074#[cfg(feature = "all-types")]
1075impl XdrCodec for ClaimableBalanceFlags {
1076    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1077        let value = *self as i32;
1078        value.to_xdr_buffered(write_stream);
1079    }
1080
1081    fn from_xdr_buffered<T: AsRef<[u8]>>(
1082        read_stream: &mut ReadStream<T>,
1083    ) -> Result<Self, DecodeError> {
1084        let enum_value = i32::from_xdr_buffered(read_stream)?;
1085        match enum_value {
1086            1 => Ok(ClaimableBalanceFlags::ClaimableBalanceClawbackEnabledFlag),
1087            _ => Err(DecodeError::InvalidEnumDiscriminator {
1088                at_position: read_stream.get_position(),
1089            }),
1090        }
1091    }
1092}
1093
1094/// Autogenerated definition for type ClaimableBalanceEntryExtensionV1
1095#[allow(dead_code)]
1096#[derive(Debug, Clone, Eq, PartialEq)]
1097pub struct ClaimableBalanceEntryExtensionV1 {
1098    pub ext: ClaimableBalanceEntryExtensionV1Ext,
1099    pub flags: Uint32,
1100}
1101
1102impl XdrCodec for ClaimableBalanceEntryExtensionV1 {
1103    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1104        self.ext.to_xdr_buffered(write_stream);
1105        self.flags.to_xdr_buffered(write_stream);
1106    }
1107
1108    fn from_xdr_buffered<T: AsRef<[u8]>>(
1109        read_stream: &mut ReadStream<T>,
1110    ) -> Result<Self, DecodeError> {
1111        Ok(ClaimableBalanceEntryExtensionV1 {
1112            ext: ClaimableBalanceEntryExtensionV1Ext::from_xdr_buffered(read_stream)?,
1113            flags: Uint32::from_xdr_buffered(read_stream)?,
1114        })
1115    }
1116}
1117
1118/// Autogenerated definition for type ClaimableBalanceEntry
1119#[allow(dead_code)]
1120#[derive(Debug, Clone, Eq, PartialEq)]
1121pub struct ClaimableBalanceEntry {
1122    pub balance_id: ClaimableBalanceId,
1123    pub claimants: LimitedVarArray<Claimant, 10>,
1124    pub asset: Asset,
1125    pub amount: Int64,
1126    pub ext: ClaimableBalanceEntryExt,
1127}
1128
1129impl XdrCodec for ClaimableBalanceEntry {
1130    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1131        self.balance_id.to_xdr_buffered(write_stream);
1132        self.claimants.to_xdr_buffered(write_stream);
1133        self.asset.to_xdr_buffered(write_stream);
1134        self.amount.to_xdr_buffered(write_stream);
1135        self.ext.to_xdr_buffered(write_stream);
1136    }
1137
1138    fn from_xdr_buffered<T: AsRef<[u8]>>(
1139        read_stream: &mut ReadStream<T>,
1140    ) -> Result<Self, DecodeError> {
1141        Ok(ClaimableBalanceEntry {
1142            balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)?,
1143            claimants: LimitedVarArray::<Claimant, 10>::from_xdr_buffered(read_stream)?,
1144            asset: Asset::from_xdr_buffered(read_stream)?,
1145            amount: Int64::from_xdr_buffered(read_stream)?,
1146            ext: ClaimableBalanceEntryExt::from_xdr_buffered(read_stream)?,
1147        })
1148    }
1149}
1150
1151/// Autogenerated definition for type LiquidityPoolConstantProductParameters
1152#[allow(dead_code)]
1153#[derive(Debug, Clone, Eq, PartialEq)]
1154pub struct LiquidityPoolConstantProductParameters {
1155    pub asseta: Asset,
1156    pub asset_b: Asset,
1157    pub fee: Int32,
1158}
1159
1160impl XdrCodec for LiquidityPoolConstantProductParameters {
1161    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1162        self.asseta.to_xdr_buffered(write_stream);
1163        self.asset_b.to_xdr_buffered(write_stream);
1164        self.fee.to_xdr_buffered(write_stream);
1165    }
1166
1167    fn from_xdr_buffered<T: AsRef<[u8]>>(
1168        read_stream: &mut ReadStream<T>,
1169    ) -> Result<Self, DecodeError> {
1170        Ok(LiquidityPoolConstantProductParameters {
1171            asseta: Asset::from_xdr_buffered(read_stream)?,
1172            asset_b: Asset::from_xdr_buffered(read_stream)?,
1173            fee: Int32::from_xdr_buffered(read_stream)?,
1174        })
1175    }
1176}
1177
1178/// Autogenerated definition for type LiquidityPoolEntryConstantProduct
1179#[allow(dead_code)]
1180#[derive(Debug, Clone, Eq, PartialEq)]
1181pub struct LiquidityPoolEntryConstantProduct {
1182    pub params: LiquidityPoolConstantProductParameters,
1183    pub reserve_a: Int64,
1184    pub reserve_b: Int64,
1185    pub total_pool_shares: Int64,
1186    pub pool_shares_trust_line_count: Int64,
1187}
1188
1189impl XdrCodec for LiquidityPoolEntryConstantProduct {
1190    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1191        self.params.to_xdr_buffered(write_stream);
1192        self.reserve_a.to_xdr_buffered(write_stream);
1193        self.reserve_b.to_xdr_buffered(write_stream);
1194        self.total_pool_shares.to_xdr_buffered(write_stream);
1195        self.pool_shares_trust_line_count
1196            .to_xdr_buffered(write_stream);
1197    }
1198
1199    fn from_xdr_buffered<T: AsRef<[u8]>>(
1200        read_stream: &mut ReadStream<T>,
1201    ) -> Result<Self, DecodeError> {
1202        Ok(LiquidityPoolEntryConstantProduct {
1203            params: LiquidityPoolConstantProductParameters::from_xdr_buffered(read_stream)?,
1204            reserve_a: Int64::from_xdr_buffered(read_stream)?,
1205            reserve_b: Int64::from_xdr_buffered(read_stream)?,
1206            total_pool_shares: Int64::from_xdr_buffered(read_stream)?,
1207            pool_shares_trust_line_count: Int64::from_xdr_buffered(read_stream)?,
1208        })
1209    }
1210}
1211
1212/// Autogenerated definition for type LiquidityPoolEntry
1213#[allow(dead_code)]
1214#[derive(Debug, Clone, Eq, PartialEq)]
1215pub struct LiquidityPoolEntry {
1216    pub liquidity_pool_id: PoolId,
1217    pub body: LiquidityPoolEntryBody,
1218}
1219
1220impl XdrCodec for LiquidityPoolEntry {
1221    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1222        self.liquidity_pool_id.to_xdr_buffered(write_stream);
1223        self.body.to_xdr_buffered(write_stream);
1224    }
1225
1226    fn from_xdr_buffered<T: AsRef<[u8]>>(
1227        read_stream: &mut ReadStream<T>,
1228    ) -> Result<Self, DecodeError> {
1229        Ok(LiquidityPoolEntry {
1230            liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)?,
1231            body: LiquidityPoolEntryBody::from_xdr_buffered(read_stream)?,
1232        })
1233    }
1234}
1235
1236/// Autogenerated definition for type LedgerEntryExtensionV1
1237#[allow(dead_code)]
1238#[derive(Debug, Clone, Eq, PartialEq)]
1239pub struct LedgerEntryExtensionV1 {
1240    pub sponsoring_id: SponsorshipDescriptor,
1241    pub ext: LedgerEntryExtensionV1Ext,
1242}
1243
1244impl XdrCodec for LedgerEntryExtensionV1 {
1245    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1246        self.sponsoring_id.to_xdr_buffered(write_stream);
1247        self.ext.to_xdr_buffered(write_stream);
1248    }
1249
1250    fn from_xdr_buffered<T: AsRef<[u8]>>(
1251        read_stream: &mut ReadStream<T>,
1252    ) -> Result<Self, DecodeError> {
1253        Ok(LedgerEntryExtensionV1 {
1254            sponsoring_id: SponsorshipDescriptor::from_xdr_buffered(read_stream)?,
1255            ext: LedgerEntryExtensionV1Ext::from_xdr_buffered(read_stream)?,
1256        })
1257    }
1258}
1259
1260/// Autogenerated definition for type LedgerEntry
1261#[allow(dead_code)]
1262#[derive(Debug, Clone, Eq, PartialEq)]
1263pub struct LedgerEntry {
1264    pub last_modified_ledger_seq: Uint32,
1265    pub data: LedgerEntryData,
1266    pub ext: LedgerEntryExt,
1267}
1268
1269impl XdrCodec for LedgerEntry {
1270    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1271        self.last_modified_ledger_seq.to_xdr_buffered(write_stream);
1272        self.data.to_xdr_buffered(write_stream);
1273        self.ext.to_xdr_buffered(write_stream);
1274    }
1275
1276    fn from_xdr_buffered<T: AsRef<[u8]>>(
1277        read_stream: &mut ReadStream<T>,
1278    ) -> Result<Self, DecodeError> {
1279        Ok(LedgerEntry {
1280            last_modified_ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1281            data: LedgerEntryData::from_xdr_buffered(read_stream)?,
1282            ext: LedgerEntryExt::from_xdr_buffered(read_stream)?,
1283        })
1284    }
1285}
1286
1287/// Autogenerated definition for type LedgerKeyAccount
1288#[allow(dead_code)]
1289#[derive(Debug, Clone, Eq, PartialEq)]
1290pub struct LedgerKeyAccount {
1291    pub account_id: AccountId,
1292}
1293
1294impl XdrCodec for LedgerKeyAccount {
1295    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1296        self.account_id.to_xdr_buffered(write_stream);
1297    }
1298
1299    fn from_xdr_buffered<T: AsRef<[u8]>>(
1300        read_stream: &mut ReadStream<T>,
1301    ) -> Result<Self, DecodeError> {
1302        Ok(LedgerKeyAccount {
1303            account_id: AccountId::from_xdr_buffered(read_stream)?,
1304        })
1305    }
1306}
1307
1308/// Autogenerated definition for type LedgerKeyTrustLine
1309#[allow(dead_code)]
1310#[derive(Debug, Clone, Eq, PartialEq)]
1311pub struct LedgerKeyTrustLine {
1312    pub account_id: AccountId,
1313    pub asset: TrustLineAsset,
1314}
1315
1316impl XdrCodec for LedgerKeyTrustLine {
1317    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1318        self.account_id.to_xdr_buffered(write_stream);
1319        self.asset.to_xdr_buffered(write_stream);
1320    }
1321
1322    fn from_xdr_buffered<T: AsRef<[u8]>>(
1323        read_stream: &mut ReadStream<T>,
1324    ) -> Result<Self, DecodeError> {
1325        Ok(LedgerKeyTrustLine {
1326            account_id: AccountId::from_xdr_buffered(read_stream)?,
1327            asset: TrustLineAsset::from_xdr_buffered(read_stream)?,
1328        })
1329    }
1330}
1331
1332/// Autogenerated definition for type LedgerKeyOffer
1333#[allow(dead_code)]
1334#[derive(Debug, Clone, Eq, PartialEq)]
1335pub struct LedgerKeyOffer {
1336    pub seller_id: AccountId,
1337    pub offer_id: Int64,
1338}
1339
1340impl XdrCodec for LedgerKeyOffer {
1341    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1342        self.seller_id.to_xdr_buffered(write_stream);
1343        self.offer_id.to_xdr_buffered(write_stream);
1344    }
1345
1346    fn from_xdr_buffered<T: AsRef<[u8]>>(
1347        read_stream: &mut ReadStream<T>,
1348    ) -> Result<Self, DecodeError> {
1349        Ok(LedgerKeyOffer {
1350            seller_id: AccountId::from_xdr_buffered(read_stream)?,
1351            offer_id: Int64::from_xdr_buffered(read_stream)?,
1352        })
1353    }
1354}
1355
1356/// Autogenerated definition for type LedgerKeyData
1357#[allow(dead_code)]
1358#[derive(Debug, Clone, Eq, PartialEq)]
1359pub struct LedgerKeyData {
1360    pub account_id: AccountId,
1361    pub data_name: String64,
1362}
1363
1364impl XdrCodec for LedgerKeyData {
1365    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1366        self.account_id.to_xdr_buffered(write_stream);
1367        self.data_name.to_xdr_buffered(write_stream);
1368    }
1369
1370    fn from_xdr_buffered<T: AsRef<[u8]>>(
1371        read_stream: &mut ReadStream<T>,
1372    ) -> Result<Self, DecodeError> {
1373        Ok(LedgerKeyData {
1374            account_id: AccountId::from_xdr_buffered(read_stream)?,
1375            data_name: String64::from_xdr_buffered(read_stream)?,
1376        })
1377    }
1378}
1379
1380/// Autogenerated definition for type LedgerKeyClaimableBalance
1381#[allow(dead_code)]
1382#[derive(Debug, Clone, Eq, PartialEq)]
1383pub struct LedgerKeyClaimableBalance {
1384    pub balance_id: ClaimableBalanceId,
1385}
1386
1387impl XdrCodec for LedgerKeyClaimableBalance {
1388    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1389        self.balance_id.to_xdr_buffered(write_stream);
1390    }
1391
1392    fn from_xdr_buffered<T: AsRef<[u8]>>(
1393        read_stream: &mut ReadStream<T>,
1394    ) -> Result<Self, DecodeError> {
1395        Ok(LedgerKeyClaimableBalance {
1396            balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)?,
1397        })
1398    }
1399}
1400
1401/// Autogenerated definition for type LedgerKeyLiquidityPool
1402#[allow(dead_code)]
1403#[derive(Debug, Clone, Eq, PartialEq)]
1404pub struct LedgerKeyLiquidityPool {
1405    pub liquidity_pool_id: PoolId,
1406}
1407
1408impl XdrCodec for LedgerKeyLiquidityPool {
1409    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1410        self.liquidity_pool_id.to_xdr_buffered(write_stream);
1411    }
1412
1413    fn from_xdr_buffered<T: AsRef<[u8]>>(
1414        read_stream: &mut ReadStream<T>,
1415    ) -> Result<Self, DecodeError> {
1416        Ok(LedgerKeyLiquidityPool {
1417            liquidity_pool_id: PoolId::from_xdr_buffered(read_stream)?,
1418        })
1419    }
1420}
1421
1422/// Autogenerated definition for type EnvelopeType
1423#[allow(dead_code)]
1424#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1425pub enum EnvelopeType {
1426    EnvelopeTypeTxV0 = 0,
1427    EnvelopeTypeScp = 1,
1428    EnvelopeTypeTx = 2,
1429    EnvelopeTypeAuth = 3,
1430    EnvelopeTypeScpvalue = 4,
1431    EnvelopeTypeTxFeeBump = 5,
1432    EnvelopeTypeOpId = 6,
1433}
1434
1435impl XdrCodec for EnvelopeType {
1436    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1437        let value = *self as i32;
1438        value.to_xdr_buffered(write_stream);
1439    }
1440
1441    fn from_xdr_buffered<T: AsRef<[u8]>>(
1442        read_stream: &mut ReadStream<T>,
1443    ) -> Result<Self, DecodeError> {
1444        let enum_value = i32::from_xdr_buffered(read_stream)?;
1445        match enum_value {
1446            0 => Ok(EnvelopeType::EnvelopeTypeTxV0),
1447            1 => Ok(EnvelopeType::EnvelopeTypeScp),
1448            2 => Ok(EnvelopeType::EnvelopeTypeTx),
1449            3 => Ok(EnvelopeType::EnvelopeTypeAuth),
1450            4 => Ok(EnvelopeType::EnvelopeTypeScpvalue),
1451            5 => Ok(EnvelopeType::EnvelopeTypeTxFeeBump),
1452            6 => Ok(EnvelopeType::EnvelopeTypeOpId),
1453            _ => Err(DecodeError::InvalidEnumDiscriminator {
1454                at_position: read_stream.get_position(),
1455            }),
1456        }
1457    }
1458}
1459
1460/// Autogenerated definition for type UpgradeType
1461#[allow(dead_code)]
1462#[cfg(feature = "all-types")]
1463pub type UpgradeType = LimitedVarOpaque<128>;
1464
1465/// Autogenerated definition for type StellarValueType
1466#[allow(dead_code)]
1467#[cfg(feature = "all-types")]
1468#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1469pub enum StellarValueType {
1470    StellarValueBasic = 0,
1471    StellarValueSigned = 1,
1472}
1473
1474#[cfg(feature = "all-types")]
1475impl XdrCodec for StellarValueType {
1476    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1477        let value = *self as i32;
1478        value.to_xdr_buffered(write_stream);
1479    }
1480
1481    fn from_xdr_buffered<T: AsRef<[u8]>>(
1482        read_stream: &mut ReadStream<T>,
1483    ) -> Result<Self, DecodeError> {
1484        let enum_value = i32::from_xdr_buffered(read_stream)?;
1485        match enum_value {
1486            0 => Ok(StellarValueType::StellarValueBasic),
1487            1 => Ok(StellarValueType::StellarValueSigned),
1488            _ => Err(DecodeError::InvalidEnumDiscriminator {
1489                at_position: read_stream.get_position(),
1490            }),
1491        }
1492    }
1493}
1494
1495/// Autogenerated definition for type LedgerCloseValueSignature
1496#[allow(dead_code)]
1497#[cfg(feature = "all-types")]
1498#[derive(Debug, Clone, Eq, PartialEq)]
1499pub struct LedgerCloseValueSignature {
1500    pub node_id: NodeId,
1501    pub signature: Signature,
1502}
1503
1504#[cfg(feature = "all-types")]
1505impl XdrCodec for LedgerCloseValueSignature {
1506    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1507        self.node_id.to_xdr_buffered(write_stream);
1508        self.signature.to_xdr_buffered(write_stream);
1509    }
1510
1511    fn from_xdr_buffered<T: AsRef<[u8]>>(
1512        read_stream: &mut ReadStream<T>,
1513    ) -> Result<Self, DecodeError> {
1514        Ok(LedgerCloseValueSignature {
1515            node_id: NodeId::from_xdr_buffered(read_stream)?,
1516            signature: Signature::from_xdr_buffered(read_stream)?,
1517        })
1518    }
1519}
1520
1521/// Autogenerated definition for type StellarValue
1522#[allow(dead_code)]
1523#[cfg(feature = "all-types")]
1524#[derive(Debug, Clone, Eq, PartialEq)]
1525pub struct StellarValue {
1526    pub tx_set_hash: Hash,
1527    pub close_time: TimePoint,
1528    pub upgrades: LimitedVarArray<UpgradeType, 6>,
1529    pub ext: StellarValueExt,
1530}
1531
1532#[cfg(feature = "all-types")]
1533impl XdrCodec for StellarValue {
1534    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1535        self.tx_set_hash.to_xdr_buffered(write_stream);
1536        self.close_time.to_xdr_buffered(write_stream);
1537        self.upgrades.to_xdr_buffered(write_stream);
1538        self.ext.to_xdr_buffered(write_stream);
1539    }
1540
1541    fn from_xdr_buffered<T: AsRef<[u8]>>(
1542        read_stream: &mut ReadStream<T>,
1543    ) -> Result<Self, DecodeError> {
1544        Ok(StellarValue {
1545            tx_set_hash: Hash::from_xdr_buffered(read_stream)?,
1546            close_time: TimePoint::from_xdr_buffered(read_stream)?,
1547            upgrades: LimitedVarArray::<UpgradeType, 6>::from_xdr_buffered(read_stream)?,
1548            ext: StellarValueExt::from_xdr_buffered(read_stream)?,
1549        })
1550    }
1551}
1552
1553/// Autogenerated definition for type LedgerHeader
1554#[allow(dead_code)]
1555#[cfg(feature = "all-types")]
1556#[derive(Debug, Clone, Eq, PartialEq)]
1557pub struct LedgerHeader {
1558    pub ledger_version: Uint32,
1559    pub previous_ledger_hash: Hash,
1560    pub scp_value: StellarValue,
1561    pub tx_set_result_hash: Hash,
1562    pub bucket_list_hash: Hash,
1563    pub ledger_seq: Uint32,
1564    pub total_coins: Int64,
1565    pub fee_pool: Int64,
1566    pub inflation_seq: Uint32,
1567    pub id_pool: Uint64,
1568    pub base_fee: Uint32,
1569    pub base_reserve: Uint32,
1570    pub max_tx_set_size: Uint32,
1571    pub skip_list: [Hash; 4],
1572    pub ext: LedgerHeaderExt,
1573}
1574
1575#[cfg(feature = "all-types")]
1576impl XdrCodec for LedgerHeader {
1577    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1578        self.ledger_version.to_xdr_buffered(write_stream);
1579        self.previous_ledger_hash.to_xdr_buffered(write_stream);
1580        self.scp_value.to_xdr_buffered(write_stream);
1581        self.tx_set_result_hash.to_xdr_buffered(write_stream);
1582        self.bucket_list_hash.to_xdr_buffered(write_stream);
1583        self.ledger_seq.to_xdr_buffered(write_stream);
1584        self.total_coins.to_xdr_buffered(write_stream);
1585        self.fee_pool.to_xdr_buffered(write_stream);
1586        self.inflation_seq.to_xdr_buffered(write_stream);
1587        self.id_pool.to_xdr_buffered(write_stream);
1588        self.base_fee.to_xdr_buffered(write_stream);
1589        self.base_reserve.to_xdr_buffered(write_stream);
1590        self.max_tx_set_size.to_xdr_buffered(write_stream);
1591        self.skip_list.to_xdr_buffered(write_stream);
1592        self.ext.to_xdr_buffered(write_stream);
1593    }
1594
1595    fn from_xdr_buffered<T: AsRef<[u8]>>(
1596        read_stream: &mut ReadStream<T>,
1597    ) -> Result<Self, DecodeError> {
1598        Ok(LedgerHeader {
1599            ledger_version: Uint32::from_xdr_buffered(read_stream)?,
1600            previous_ledger_hash: Hash::from_xdr_buffered(read_stream)?,
1601            scp_value: StellarValue::from_xdr_buffered(read_stream)?,
1602            tx_set_result_hash: Hash::from_xdr_buffered(read_stream)?,
1603            bucket_list_hash: Hash::from_xdr_buffered(read_stream)?,
1604            ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1605            total_coins: Int64::from_xdr_buffered(read_stream)?,
1606            fee_pool: Int64::from_xdr_buffered(read_stream)?,
1607            inflation_seq: Uint32::from_xdr_buffered(read_stream)?,
1608            id_pool: Uint64::from_xdr_buffered(read_stream)?,
1609            base_fee: Uint32::from_xdr_buffered(read_stream)?,
1610            base_reserve: Uint32::from_xdr_buffered(read_stream)?,
1611            max_tx_set_size: Uint32::from_xdr_buffered(read_stream)?,
1612            skip_list: <[Hash; 4]>::from_xdr_buffered(read_stream)?,
1613            ext: LedgerHeaderExt::from_xdr_buffered(read_stream)?,
1614        })
1615    }
1616}
1617
1618/// Autogenerated definition for type LedgerUpgradeType
1619#[allow(dead_code)]
1620#[cfg(feature = "all-types")]
1621#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1622pub enum LedgerUpgradeType {
1623    LedgerUpgradeVersion = 1,
1624    LedgerUpgradeBaseFee = 2,
1625    LedgerUpgradeMaxTxSetSize = 3,
1626    LedgerUpgradeBaseReserve = 4,
1627}
1628
1629#[cfg(feature = "all-types")]
1630impl XdrCodec for LedgerUpgradeType {
1631    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1632        let value = *self as i32;
1633        value.to_xdr_buffered(write_stream);
1634    }
1635
1636    fn from_xdr_buffered<T: AsRef<[u8]>>(
1637        read_stream: &mut ReadStream<T>,
1638    ) -> Result<Self, DecodeError> {
1639        let enum_value = i32::from_xdr_buffered(read_stream)?;
1640        match enum_value {
1641            1 => Ok(LedgerUpgradeType::LedgerUpgradeVersion),
1642            2 => Ok(LedgerUpgradeType::LedgerUpgradeBaseFee),
1643            3 => Ok(LedgerUpgradeType::LedgerUpgradeMaxTxSetSize),
1644            4 => Ok(LedgerUpgradeType::LedgerUpgradeBaseReserve),
1645            _ => Err(DecodeError::InvalidEnumDiscriminator {
1646                at_position: read_stream.get_position(),
1647            }),
1648        }
1649    }
1650}
1651
1652/// Autogenerated definition for type BucketEntryType
1653#[allow(dead_code)]
1654#[cfg(feature = "all-types")]
1655#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1656pub enum BucketEntryType {
1657    Metaentry = -1,
1658    Liveentry = 0,
1659    Deadentry = 1,
1660    Initentry = 2,
1661}
1662
1663#[cfg(feature = "all-types")]
1664impl XdrCodec for BucketEntryType {
1665    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1666        let value = *self as i32;
1667        value.to_xdr_buffered(write_stream);
1668    }
1669
1670    fn from_xdr_buffered<T: AsRef<[u8]>>(
1671        read_stream: &mut ReadStream<T>,
1672    ) -> Result<Self, DecodeError> {
1673        let enum_value = i32::from_xdr_buffered(read_stream)?;
1674        match enum_value {
1675            -1 => Ok(BucketEntryType::Metaentry),
1676            0 => Ok(BucketEntryType::Liveentry),
1677            1 => Ok(BucketEntryType::Deadentry),
1678            2 => Ok(BucketEntryType::Initentry),
1679            _ => Err(DecodeError::InvalidEnumDiscriminator {
1680                at_position: read_stream.get_position(),
1681            }),
1682        }
1683    }
1684}
1685
1686/// Autogenerated definition for type BucketMetadata
1687#[allow(dead_code)]
1688#[cfg(feature = "all-types")]
1689#[derive(Debug, Clone, Eq, PartialEq)]
1690pub struct BucketMetadata {
1691    pub ledger_version: Uint32,
1692    pub ext: BucketMetadataExt,
1693}
1694
1695#[cfg(feature = "all-types")]
1696impl XdrCodec for BucketMetadata {
1697    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1698        self.ledger_version.to_xdr_buffered(write_stream);
1699        self.ext.to_xdr_buffered(write_stream);
1700    }
1701
1702    fn from_xdr_buffered<T: AsRef<[u8]>>(
1703        read_stream: &mut ReadStream<T>,
1704    ) -> Result<Self, DecodeError> {
1705        Ok(BucketMetadata {
1706            ledger_version: Uint32::from_xdr_buffered(read_stream)?,
1707            ext: BucketMetadataExt::from_xdr_buffered(read_stream)?,
1708        })
1709    }
1710}
1711
1712/// Autogenerated definition for type TransactionSet
1713#[allow(dead_code)]
1714#[cfg(feature = "all-types")]
1715#[derive(Debug, Clone, Eq, PartialEq)]
1716pub struct TransactionSet {
1717    pub previous_ledger_hash: Hash,
1718    pub txes: UnlimitedVarArray<TransactionEnvelope>,
1719}
1720
1721#[cfg(feature = "all-types")]
1722impl XdrCodec for TransactionSet {
1723    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1724        self.previous_ledger_hash.to_xdr_buffered(write_stream);
1725        self.txes.to_xdr_buffered(write_stream);
1726    }
1727
1728    fn from_xdr_buffered<T: AsRef<[u8]>>(
1729        read_stream: &mut ReadStream<T>,
1730    ) -> Result<Self, DecodeError> {
1731        Ok(TransactionSet {
1732            previous_ledger_hash: Hash::from_xdr_buffered(read_stream)?,
1733            txes: UnlimitedVarArray::<TransactionEnvelope>::from_xdr_buffered(read_stream)?,
1734        })
1735    }
1736}
1737
1738/// Autogenerated definition for type TransactionResultPair
1739#[allow(dead_code)]
1740#[cfg(feature = "all-types")]
1741#[derive(Debug, Clone, Eq, PartialEq)]
1742pub struct TransactionResultPair {
1743    pub transaction_hash: Hash,
1744    pub result: TransactionResult,
1745}
1746
1747#[cfg(feature = "all-types")]
1748impl XdrCodec for TransactionResultPair {
1749    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1750        self.transaction_hash.to_xdr_buffered(write_stream);
1751        self.result.to_xdr_buffered(write_stream);
1752    }
1753
1754    fn from_xdr_buffered<T: AsRef<[u8]>>(
1755        read_stream: &mut ReadStream<T>,
1756    ) -> Result<Self, DecodeError> {
1757        Ok(TransactionResultPair {
1758            transaction_hash: Hash::from_xdr_buffered(read_stream)?,
1759            result: TransactionResult::from_xdr_buffered(read_stream)?,
1760        })
1761    }
1762}
1763
1764/// Autogenerated definition for type TransactionResultSet
1765#[allow(dead_code)]
1766#[cfg(feature = "all-types")]
1767#[derive(Debug, Clone, Eq, PartialEq)]
1768pub struct TransactionResultSet {
1769    pub results: UnlimitedVarArray<TransactionResultPair>,
1770}
1771
1772#[cfg(feature = "all-types")]
1773impl XdrCodec for TransactionResultSet {
1774    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1775        self.results.to_xdr_buffered(write_stream);
1776    }
1777
1778    fn from_xdr_buffered<T: AsRef<[u8]>>(
1779        read_stream: &mut ReadStream<T>,
1780    ) -> Result<Self, DecodeError> {
1781        Ok(TransactionResultSet {
1782            results: UnlimitedVarArray::<TransactionResultPair>::from_xdr_buffered(read_stream)?,
1783        })
1784    }
1785}
1786
1787/// Autogenerated definition for type TransactionHistoryEntry
1788#[allow(dead_code)]
1789#[cfg(feature = "all-types")]
1790#[derive(Debug, Clone, Eq, PartialEq)]
1791pub struct TransactionHistoryEntry {
1792    pub ledger_seq: Uint32,
1793    pub tx_set: TransactionSet,
1794    pub ext: TransactionHistoryEntryExt,
1795}
1796
1797#[cfg(feature = "all-types")]
1798impl XdrCodec for TransactionHistoryEntry {
1799    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1800        self.ledger_seq.to_xdr_buffered(write_stream);
1801        self.tx_set.to_xdr_buffered(write_stream);
1802        self.ext.to_xdr_buffered(write_stream);
1803    }
1804
1805    fn from_xdr_buffered<T: AsRef<[u8]>>(
1806        read_stream: &mut ReadStream<T>,
1807    ) -> Result<Self, DecodeError> {
1808        Ok(TransactionHistoryEntry {
1809            ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1810            tx_set: TransactionSet::from_xdr_buffered(read_stream)?,
1811            ext: TransactionHistoryEntryExt::from_xdr_buffered(read_stream)?,
1812        })
1813    }
1814}
1815
1816/// Autogenerated definition for type TransactionHistoryResultEntry
1817#[allow(dead_code)]
1818#[cfg(feature = "all-types")]
1819#[derive(Debug, Clone, Eq, PartialEq)]
1820pub struct TransactionHistoryResultEntry {
1821    pub ledger_seq: Uint32,
1822    pub tx_result_set: TransactionResultSet,
1823    pub ext: TransactionHistoryResultEntryExt,
1824}
1825
1826#[cfg(feature = "all-types")]
1827impl XdrCodec for TransactionHistoryResultEntry {
1828    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1829        self.ledger_seq.to_xdr_buffered(write_stream);
1830        self.tx_result_set.to_xdr_buffered(write_stream);
1831        self.ext.to_xdr_buffered(write_stream);
1832    }
1833
1834    fn from_xdr_buffered<T: AsRef<[u8]>>(
1835        read_stream: &mut ReadStream<T>,
1836    ) -> Result<Self, DecodeError> {
1837        Ok(TransactionHistoryResultEntry {
1838            ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1839            tx_result_set: TransactionResultSet::from_xdr_buffered(read_stream)?,
1840            ext: TransactionHistoryResultEntryExt::from_xdr_buffered(read_stream)?,
1841        })
1842    }
1843}
1844
1845/// Autogenerated definition for type LedgerHeaderHistoryEntry
1846#[allow(dead_code)]
1847#[cfg(feature = "all-types")]
1848#[derive(Debug, Clone, Eq, PartialEq)]
1849pub struct LedgerHeaderHistoryEntry {
1850    pub hash: Hash,
1851    pub header: LedgerHeader,
1852    pub ext: LedgerHeaderHistoryEntryExt,
1853}
1854
1855#[cfg(feature = "all-types")]
1856impl XdrCodec for LedgerHeaderHistoryEntry {
1857    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1858        self.hash.to_xdr_buffered(write_stream);
1859        self.header.to_xdr_buffered(write_stream);
1860        self.ext.to_xdr_buffered(write_stream);
1861    }
1862
1863    fn from_xdr_buffered<T: AsRef<[u8]>>(
1864        read_stream: &mut ReadStream<T>,
1865    ) -> Result<Self, DecodeError> {
1866        Ok(LedgerHeaderHistoryEntry {
1867            hash: Hash::from_xdr_buffered(read_stream)?,
1868            header: LedgerHeader::from_xdr_buffered(read_stream)?,
1869            ext: LedgerHeaderHistoryEntryExt::from_xdr_buffered(read_stream)?,
1870        })
1871    }
1872}
1873
1874/// Autogenerated definition for type LedgerScpMessages
1875#[allow(dead_code)]
1876#[cfg(feature = "all-types")]
1877#[derive(Debug, Clone, Eq, PartialEq)]
1878pub struct LedgerScpMessages {
1879    pub ledger_seq: Uint32,
1880    pub messages: UnlimitedVarArray<ScpEnvelope>,
1881}
1882
1883#[cfg(feature = "all-types")]
1884impl XdrCodec for LedgerScpMessages {
1885    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1886        self.ledger_seq.to_xdr_buffered(write_stream);
1887        self.messages.to_xdr_buffered(write_stream);
1888    }
1889
1890    fn from_xdr_buffered<T: AsRef<[u8]>>(
1891        read_stream: &mut ReadStream<T>,
1892    ) -> Result<Self, DecodeError> {
1893        Ok(LedgerScpMessages {
1894            ledger_seq: Uint32::from_xdr_buffered(read_stream)?,
1895            messages: UnlimitedVarArray::<ScpEnvelope>::from_xdr_buffered(read_stream)?,
1896        })
1897    }
1898}
1899
1900/// Autogenerated definition for type ScpHistoryEntryV0
1901#[allow(dead_code)]
1902#[cfg(feature = "all-types")]
1903#[derive(Debug, Clone, Eq, PartialEq)]
1904pub struct ScpHistoryEntryV0 {
1905    pub quorum_sets: UnlimitedVarArray<ScpQuorumSet>,
1906    pub ledger_messages: LedgerScpMessages,
1907}
1908
1909#[cfg(feature = "all-types")]
1910impl XdrCodec for ScpHistoryEntryV0 {
1911    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1912        self.quorum_sets.to_xdr_buffered(write_stream);
1913        self.ledger_messages.to_xdr_buffered(write_stream);
1914    }
1915
1916    fn from_xdr_buffered<T: AsRef<[u8]>>(
1917        read_stream: &mut ReadStream<T>,
1918    ) -> Result<Self, DecodeError> {
1919        Ok(ScpHistoryEntryV0 {
1920            quorum_sets: UnlimitedVarArray::<ScpQuorumSet>::from_xdr_buffered(read_stream)?,
1921            ledger_messages: LedgerScpMessages::from_xdr_buffered(read_stream)?,
1922        })
1923    }
1924}
1925
1926/// Autogenerated definition for type LedgerEntryChangeType
1927#[allow(dead_code)]
1928#[derive(Debug, Copy, Clone, Eq, PartialEq)]
1929pub enum LedgerEntryChangeType {
1930    LedgerEntryCreated = 0,
1931    LedgerEntryUpdated = 1,
1932    LedgerEntryRemoved = 2,
1933    LedgerEntryState = 3,
1934}
1935
1936impl XdrCodec for LedgerEntryChangeType {
1937    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1938        let value = *self as i32;
1939        value.to_xdr_buffered(write_stream);
1940    }
1941
1942    fn from_xdr_buffered<T: AsRef<[u8]>>(
1943        read_stream: &mut ReadStream<T>,
1944    ) -> Result<Self, DecodeError> {
1945        let enum_value = i32::from_xdr_buffered(read_stream)?;
1946        match enum_value {
1947            0 => Ok(LedgerEntryChangeType::LedgerEntryCreated),
1948            1 => Ok(LedgerEntryChangeType::LedgerEntryUpdated),
1949            2 => Ok(LedgerEntryChangeType::LedgerEntryRemoved),
1950            3 => Ok(LedgerEntryChangeType::LedgerEntryState),
1951            _ => Err(DecodeError::InvalidEnumDiscriminator {
1952                at_position: read_stream.get_position(),
1953            }),
1954        }
1955    }
1956}
1957
1958/// Autogenerated definition for type LedgerEntryChanges
1959#[allow(dead_code)]
1960pub type LedgerEntryChanges = UnlimitedVarArray<LedgerEntryChange>;
1961
1962/// Autogenerated definition for type OperationMeta
1963#[allow(dead_code)]
1964#[derive(Debug, Clone, Eq, PartialEq)]
1965pub struct OperationMeta {
1966    pub changes: LedgerEntryChanges,
1967}
1968
1969impl XdrCodec for OperationMeta {
1970    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1971        self.changes.to_xdr_buffered(write_stream);
1972    }
1973
1974    fn from_xdr_buffered<T: AsRef<[u8]>>(
1975        read_stream: &mut ReadStream<T>,
1976    ) -> Result<Self, DecodeError> {
1977        Ok(OperationMeta {
1978            changes: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
1979        })
1980    }
1981}
1982
1983/// Autogenerated definition for type TransactionMetaV1
1984#[allow(dead_code)]
1985#[derive(Debug, Clone, Eq, PartialEq)]
1986pub struct TransactionMetaV1 {
1987    pub tx_changes: LedgerEntryChanges,
1988    pub operations: UnlimitedVarArray<OperationMeta>,
1989}
1990
1991impl XdrCodec for TransactionMetaV1 {
1992    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
1993        self.tx_changes.to_xdr_buffered(write_stream);
1994        self.operations.to_xdr_buffered(write_stream);
1995    }
1996
1997    fn from_xdr_buffered<T: AsRef<[u8]>>(
1998        read_stream: &mut ReadStream<T>,
1999    ) -> Result<Self, DecodeError> {
2000        Ok(TransactionMetaV1 {
2001            tx_changes: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2002            operations: UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?,
2003        })
2004    }
2005}
2006
2007/// Autogenerated definition for type TransactionMetaV2
2008#[allow(dead_code)]
2009#[derive(Debug, Clone, Eq, PartialEq)]
2010pub struct TransactionMetaV2 {
2011    pub tx_changes_before: LedgerEntryChanges,
2012    pub operations: UnlimitedVarArray<OperationMeta>,
2013    pub tx_changes_after: LedgerEntryChanges,
2014}
2015
2016impl XdrCodec for TransactionMetaV2 {
2017    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2018        self.tx_changes_before.to_xdr_buffered(write_stream);
2019        self.operations.to_xdr_buffered(write_stream);
2020        self.tx_changes_after.to_xdr_buffered(write_stream);
2021    }
2022
2023    fn from_xdr_buffered<T: AsRef<[u8]>>(
2024        read_stream: &mut ReadStream<T>,
2025    ) -> Result<Self, DecodeError> {
2026        Ok(TransactionMetaV2 {
2027            tx_changes_before: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2028            operations: UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?,
2029            tx_changes_after: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2030        })
2031    }
2032}
2033
2034/// Autogenerated definition for type TransactionResultMeta
2035#[allow(dead_code)]
2036#[cfg(feature = "all-types")]
2037#[derive(Debug, Clone, Eq, PartialEq)]
2038pub struct TransactionResultMeta {
2039    pub result: TransactionResultPair,
2040    pub fee_processing: LedgerEntryChanges,
2041    pub tx_apply_processing: TransactionMeta,
2042}
2043
2044#[cfg(feature = "all-types")]
2045impl XdrCodec for TransactionResultMeta {
2046    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2047        self.result.to_xdr_buffered(write_stream);
2048        self.fee_processing.to_xdr_buffered(write_stream);
2049        self.tx_apply_processing.to_xdr_buffered(write_stream);
2050    }
2051
2052    fn from_xdr_buffered<T: AsRef<[u8]>>(
2053        read_stream: &mut ReadStream<T>,
2054    ) -> Result<Self, DecodeError> {
2055        Ok(TransactionResultMeta {
2056            result: TransactionResultPair::from_xdr_buffered(read_stream)?,
2057            fee_processing: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2058            tx_apply_processing: TransactionMeta::from_xdr_buffered(read_stream)?,
2059        })
2060    }
2061}
2062
2063/// Autogenerated definition for type UpgradeEntryMeta
2064#[allow(dead_code)]
2065#[cfg(feature = "all-types")]
2066#[derive(Debug, Clone, Eq, PartialEq)]
2067pub struct UpgradeEntryMeta {
2068    pub upgrade: LedgerUpgrade,
2069    pub changes: LedgerEntryChanges,
2070}
2071
2072#[cfg(feature = "all-types")]
2073impl XdrCodec for UpgradeEntryMeta {
2074    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2075        self.upgrade.to_xdr_buffered(write_stream);
2076        self.changes.to_xdr_buffered(write_stream);
2077    }
2078
2079    fn from_xdr_buffered<T: AsRef<[u8]>>(
2080        read_stream: &mut ReadStream<T>,
2081    ) -> Result<Self, DecodeError> {
2082        Ok(UpgradeEntryMeta {
2083            upgrade: LedgerUpgrade::from_xdr_buffered(read_stream)?,
2084            changes: LedgerEntryChanges::from_xdr_buffered(read_stream)?,
2085        })
2086    }
2087}
2088
2089/// Autogenerated definition for type LedgerCloseMetaV0
2090#[allow(dead_code)]
2091#[cfg(feature = "all-types")]
2092#[derive(Debug, Clone, Eq, PartialEq)]
2093pub struct LedgerCloseMetaV0 {
2094    pub ledger_header: LedgerHeaderHistoryEntry,
2095    pub tx_set: TransactionSet,
2096    pub tx_processing: UnlimitedVarArray<TransactionResultMeta>,
2097    pub upgrades_processing: UnlimitedVarArray<UpgradeEntryMeta>,
2098    pub scp_info: UnlimitedVarArray<ScpHistoryEntry>,
2099}
2100
2101#[cfg(feature = "all-types")]
2102impl XdrCodec for LedgerCloseMetaV0 {
2103    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2104        self.ledger_header.to_xdr_buffered(write_stream);
2105        self.tx_set.to_xdr_buffered(write_stream);
2106        self.tx_processing.to_xdr_buffered(write_stream);
2107        self.upgrades_processing.to_xdr_buffered(write_stream);
2108        self.scp_info.to_xdr_buffered(write_stream);
2109    }
2110
2111    fn from_xdr_buffered<T: AsRef<[u8]>>(
2112        read_stream: &mut ReadStream<T>,
2113    ) -> Result<Self, DecodeError> {
2114        Ok(LedgerCloseMetaV0 {
2115            ledger_header: LedgerHeaderHistoryEntry::from_xdr_buffered(read_stream)?,
2116            tx_set: TransactionSet::from_xdr_buffered(read_stream)?,
2117            tx_processing: UnlimitedVarArray::<TransactionResultMeta>::from_xdr_buffered(
2118                read_stream,
2119            )?,
2120            upgrades_processing: UnlimitedVarArray::<UpgradeEntryMeta>::from_xdr_buffered(
2121                read_stream,
2122            )?,
2123            scp_info: UnlimitedVarArray::<ScpHistoryEntry>::from_xdr_buffered(read_stream)?,
2124        })
2125    }
2126}
2127
2128/// Autogenerated definition for type ErrorCode
2129#[allow(dead_code)]
2130#[cfg(feature = "all-types")]
2131#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2132pub enum ErrorCode {
2133    ErrMisc = 0,
2134    ErrData = 1,
2135    ErrConf = 2,
2136    ErrAuth = 3,
2137    ErrLoad = 4,
2138}
2139
2140#[cfg(feature = "all-types")]
2141impl XdrCodec for ErrorCode {
2142    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2143        let value = *self as i32;
2144        value.to_xdr_buffered(write_stream);
2145    }
2146
2147    fn from_xdr_buffered<T: AsRef<[u8]>>(
2148        read_stream: &mut ReadStream<T>,
2149    ) -> Result<Self, DecodeError> {
2150        let enum_value = i32::from_xdr_buffered(read_stream)?;
2151        match enum_value {
2152            0 => Ok(ErrorCode::ErrMisc),
2153            1 => Ok(ErrorCode::ErrData),
2154            2 => Ok(ErrorCode::ErrConf),
2155            3 => Ok(ErrorCode::ErrAuth),
2156            4 => Ok(ErrorCode::ErrLoad),
2157            _ => Err(DecodeError::InvalidEnumDiscriminator {
2158                at_position: read_stream.get_position(),
2159            }),
2160        }
2161    }
2162}
2163
2164/// Autogenerated definition for type Error
2165#[allow(dead_code)]
2166#[cfg(feature = "all-types")]
2167#[derive(Debug, Clone, Eq, PartialEq)]
2168pub struct Error {
2169    pub code: ErrorCode,
2170    pub msg: LimitedString<100>,
2171}
2172
2173#[cfg(feature = "all-types")]
2174impl XdrCodec for Error {
2175    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2176        self.code.to_xdr_buffered(write_stream);
2177        self.msg.to_xdr_buffered(write_stream);
2178    }
2179
2180    fn from_xdr_buffered<T: AsRef<[u8]>>(
2181        read_stream: &mut ReadStream<T>,
2182    ) -> Result<Self, DecodeError> {
2183        Ok(Error {
2184            code: ErrorCode::from_xdr_buffered(read_stream)?,
2185            msg: LimitedString::<100>::from_xdr_buffered(read_stream)?,
2186        })
2187    }
2188}
2189
2190/// Autogenerated definition for type AuthCert
2191#[allow(dead_code)]
2192#[cfg(feature = "all-types")]
2193#[derive(Debug, Clone, Eq, PartialEq)]
2194pub struct AuthCert {
2195    pub pubkey: Curve25519Public,
2196    pub expiration: Uint64,
2197    pub sig: Signature,
2198}
2199
2200#[cfg(feature = "all-types")]
2201impl XdrCodec for AuthCert {
2202    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2203        self.pubkey.to_xdr_buffered(write_stream);
2204        self.expiration.to_xdr_buffered(write_stream);
2205        self.sig.to_xdr_buffered(write_stream);
2206    }
2207
2208    fn from_xdr_buffered<T: AsRef<[u8]>>(
2209        read_stream: &mut ReadStream<T>,
2210    ) -> Result<Self, DecodeError> {
2211        Ok(AuthCert {
2212            pubkey: Curve25519Public::from_xdr_buffered(read_stream)?,
2213            expiration: Uint64::from_xdr_buffered(read_stream)?,
2214            sig: Signature::from_xdr_buffered(read_stream)?,
2215        })
2216    }
2217}
2218
2219/// Autogenerated definition for type Hello
2220#[allow(dead_code)]
2221#[cfg(feature = "all-types")]
2222#[derive(Debug, Clone, Eq, PartialEq)]
2223pub struct Hello {
2224    pub ledger_version: Uint32,
2225    pub overlay_version: Uint32,
2226    pub overlay_min_version: Uint32,
2227    pub network_id: Hash,
2228    pub version_str: LimitedString<100>,
2229    pub listening_port: i32,
2230    pub peer_id: NodeId,
2231    pub cert: AuthCert,
2232    pub nonce: Uint256,
2233}
2234
2235#[cfg(feature = "all-types")]
2236impl XdrCodec for Hello {
2237    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2238        self.ledger_version.to_xdr_buffered(write_stream);
2239        self.overlay_version.to_xdr_buffered(write_stream);
2240        self.overlay_min_version.to_xdr_buffered(write_stream);
2241        self.network_id.to_xdr_buffered(write_stream);
2242        self.version_str.to_xdr_buffered(write_stream);
2243        self.listening_port.to_xdr_buffered(write_stream);
2244        self.peer_id.to_xdr_buffered(write_stream);
2245        self.cert.to_xdr_buffered(write_stream);
2246        self.nonce.to_xdr_buffered(write_stream);
2247    }
2248
2249    fn from_xdr_buffered<T: AsRef<[u8]>>(
2250        read_stream: &mut ReadStream<T>,
2251    ) -> Result<Self, DecodeError> {
2252        Ok(Hello {
2253            ledger_version: Uint32::from_xdr_buffered(read_stream)?,
2254            overlay_version: Uint32::from_xdr_buffered(read_stream)?,
2255            overlay_min_version: Uint32::from_xdr_buffered(read_stream)?,
2256            network_id: Hash::from_xdr_buffered(read_stream)?,
2257            version_str: LimitedString::<100>::from_xdr_buffered(read_stream)?,
2258            listening_port: i32::from_xdr_buffered(read_stream)?,
2259            peer_id: NodeId::from_xdr_buffered(read_stream)?,
2260            cert: AuthCert::from_xdr_buffered(read_stream)?,
2261            nonce: Uint256::from_xdr_buffered(read_stream)?,
2262        })
2263    }
2264}
2265
2266/// Autogenerated definition for type Auth
2267#[allow(dead_code)]
2268#[cfg(feature = "all-types")]
2269#[derive(Debug, Clone, Eq, PartialEq)]
2270pub struct Auth {
2271    pub unused: i32,
2272}
2273
2274#[cfg(feature = "all-types")]
2275impl XdrCodec for Auth {
2276    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2277        self.unused.to_xdr_buffered(write_stream);
2278    }
2279
2280    fn from_xdr_buffered<T: AsRef<[u8]>>(
2281        read_stream: &mut ReadStream<T>,
2282    ) -> Result<Self, DecodeError> {
2283        Ok(Auth {
2284            unused: i32::from_xdr_buffered(read_stream)?,
2285        })
2286    }
2287}
2288
2289/// Autogenerated definition for type IpAddrType
2290#[allow(dead_code)]
2291#[cfg(feature = "all-types")]
2292#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2293pub enum IpAddrType {
2294    IPv4 = 0,
2295    IPv6 = 1,
2296}
2297
2298#[cfg(feature = "all-types")]
2299impl XdrCodec for IpAddrType {
2300    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2301        let value = *self as i32;
2302        value.to_xdr_buffered(write_stream);
2303    }
2304
2305    fn from_xdr_buffered<T: AsRef<[u8]>>(
2306        read_stream: &mut ReadStream<T>,
2307    ) -> Result<Self, DecodeError> {
2308        let enum_value = i32::from_xdr_buffered(read_stream)?;
2309        match enum_value {
2310            0 => Ok(IpAddrType::IPv4),
2311            1 => Ok(IpAddrType::IPv6),
2312            _ => Err(DecodeError::InvalidEnumDiscriminator {
2313                at_position: read_stream.get_position(),
2314            }),
2315        }
2316    }
2317}
2318
2319/// Autogenerated definition for type PeerAddress
2320#[allow(dead_code)]
2321#[cfg(feature = "all-types")]
2322#[derive(Debug, Clone, Eq, PartialEq)]
2323pub struct PeerAddress {
2324    pub ip: PeerAddressIp,
2325    pub port: Uint32,
2326    pub num_failures: Uint32,
2327}
2328
2329#[cfg(feature = "all-types")]
2330impl XdrCodec for PeerAddress {
2331    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2332        self.ip.to_xdr_buffered(write_stream);
2333        self.port.to_xdr_buffered(write_stream);
2334        self.num_failures.to_xdr_buffered(write_stream);
2335    }
2336
2337    fn from_xdr_buffered<T: AsRef<[u8]>>(
2338        read_stream: &mut ReadStream<T>,
2339    ) -> Result<Self, DecodeError> {
2340        Ok(PeerAddress {
2341            ip: PeerAddressIp::from_xdr_buffered(read_stream)?,
2342            port: Uint32::from_xdr_buffered(read_stream)?,
2343            num_failures: Uint32::from_xdr_buffered(read_stream)?,
2344        })
2345    }
2346}
2347
2348/// Autogenerated definition for type MessageType
2349#[allow(dead_code)]
2350#[cfg(feature = "all-types")]
2351#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2352pub enum MessageType {
2353    ErrorMsg = 0,
2354    Auth = 2,
2355    DontHave = 3,
2356    GetPeers = 4,
2357    Peers = 5,
2358    GetTxSet = 6,
2359    TxSet = 7,
2360    Transaction = 8,
2361    GetScpQuorumset = 9,
2362    ScpQuorumset = 10,
2363    ScpMessage = 11,
2364    GetScpState = 12,
2365    Hello = 13,
2366    SurveyRequest = 14,
2367    SurveyResponse = 15,
2368}
2369
2370#[cfg(feature = "all-types")]
2371impl XdrCodec for MessageType {
2372    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2373        let value = *self as i32;
2374        value.to_xdr_buffered(write_stream);
2375    }
2376
2377    fn from_xdr_buffered<T: AsRef<[u8]>>(
2378        read_stream: &mut ReadStream<T>,
2379    ) -> Result<Self, DecodeError> {
2380        let enum_value = i32::from_xdr_buffered(read_stream)?;
2381        match enum_value {
2382            0 => Ok(MessageType::ErrorMsg),
2383            2 => Ok(MessageType::Auth),
2384            3 => Ok(MessageType::DontHave),
2385            4 => Ok(MessageType::GetPeers),
2386            5 => Ok(MessageType::Peers),
2387            6 => Ok(MessageType::GetTxSet),
2388            7 => Ok(MessageType::TxSet),
2389            8 => Ok(MessageType::Transaction),
2390            9 => Ok(MessageType::GetScpQuorumset),
2391            10 => Ok(MessageType::ScpQuorumset),
2392            11 => Ok(MessageType::ScpMessage),
2393            12 => Ok(MessageType::GetScpState),
2394            13 => Ok(MessageType::Hello),
2395            14 => Ok(MessageType::SurveyRequest),
2396            15 => Ok(MessageType::SurveyResponse),
2397            _ => Err(DecodeError::InvalidEnumDiscriminator {
2398                at_position: read_stream.get_position(),
2399            }),
2400        }
2401    }
2402}
2403
2404/// Autogenerated definition for type DontHave
2405#[allow(dead_code)]
2406#[cfg(feature = "all-types")]
2407#[derive(Debug, Clone, Eq, PartialEq)]
2408pub struct DontHave {
2409    pub type_: MessageType,
2410    pub req_hash: Uint256,
2411}
2412
2413#[cfg(feature = "all-types")]
2414impl XdrCodec for DontHave {
2415    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2416        self.type_.to_xdr_buffered(write_stream);
2417        self.req_hash.to_xdr_buffered(write_stream);
2418    }
2419
2420    fn from_xdr_buffered<T: AsRef<[u8]>>(
2421        read_stream: &mut ReadStream<T>,
2422    ) -> Result<Self, DecodeError> {
2423        Ok(DontHave {
2424            type_: MessageType::from_xdr_buffered(read_stream)?,
2425            req_hash: Uint256::from_xdr_buffered(read_stream)?,
2426        })
2427    }
2428}
2429
2430/// Autogenerated definition for type SurveyMessageCommandType
2431#[allow(dead_code)]
2432#[cfg(feature = "all-types")]
2433#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2434pub enum SurveyMessageCommandType {
2435    SurveyTopology = 0,
2436}
2437
2438#[cfg(feature = "all-types")]
2439impl XdrCodec for SurveyMessageCommandType {
2440    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2441        let value = *self as i32;
2442        value.to_xdr_buffered(write_stream);
2443    }
2444
2445    fn from_xdr_buffered<T: AsRef<[u8]>>(
2446        read_stream: &mut ReadStream<T>,
2447    ) -> Result<Self, DecodeError> {
2448        let enum_value = i32::from_xdr_buffered(read_stream)?;
2449        match enum_value {
2450            0 => Ok(SurveyMessageCommandType::SurveyTopology),
2451            _ => Err(DecodeError::InvalidEnumDiscriminator {
2452                at_position: read_stream.get_position(),
2453            }),
2454        }
2455    }
2456}
2457
2458/// Autogenerated definition for type SurveyRequestMessage
2459#[allow(dead_code)]
2460#[cfg(feature = "all-types")]
2461#[derive(Debug, Clone, Eq, PartialEq)]
2462pub struct SurveyRequestMessage {
2463    pub surveyor_peer_id: NodeId,
2464    pub surveyed_peer_id: NodeId,
2465    pub ledger_num: Uint32,
2466    pub encryption_key: Curve25519Public,
2467    pub command_type: SurveyMessageCommandType,
2468}
2469
2470#[cfg(feature = "all-types")]
2471impl XdrCodec for SurveyRequestMessage {
2472    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2473        self.surveyor_peer_id.to_xdr_buffered(write_stream);
2474        self.surveyed_peer_id.to_xdr_buffered(write_stream);
2475        self.ledger_num.to_xdr_buffered(write_stream);
2476        self.encryption_key.to_xdr_buffered(write_stream);
2477        self.command_type.to_xdr_buffered(write_stream);
2478    }
2479
2480    fn from_xdr_buffered<T: AsRef<[u8]>>(
2481        read_stream: &mut ReadStream<T>,
2482    ) -> Result<Self, DecodeError> {
2483        Ok(SurveyRequestMessage {
2484            surveyor_peer_id: NodeId::from_xdr_buffered(read_stream)?,
2485            surveyed_peer_id: NodeId::from_xdr_buffered(read_stream)?,
2486            ledger_num: Uint32::from_xdr_buffered(read_stream)?,
2487            encryption_key: Curve25519Public::from_xdr_buffered(read_stream)?,
2488            command_type: SurveyMessageCommandType::from_xdr_buffered(read_stream)?,
2489        })
2490    }
2491}
2492
2493/// Autogenerated definition for type SignedSurveyRequestMessage
2494#[allow(dead_code)]
2495#[cfg(feature = "all-types")]
2496#[derive(Debug, Clone, Eq, PartialEq)]
2497pub struct SignedSurveyRequestMessage {
2498    pub request_signature: Signature,
2499    pub request: SurveyRequestMessage,
2500}
2501
2502#[cfg(feature = "all-types")]
2503impl XdrCodec for SignedSurveyRequestMessage {
2504    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2505        self.request_signature.to_xdr_buffered(write_stream);
2506        self.request.to_xdr_buffered(write_stream);
2507    }
2508
2509    fn from_xdr_buffered<T: AsRef<[u8]>>(
2510        read_stream: &mut ReadStream<T>,
2511    ) -> Result<Self, DecodeError> {
2512        Ok(SignedSurveyRequestMessage {
2513            request_signature: Signature::from_xdr_buffered(read_stream)?,
2514            request: SurveyRequestMessage::from_xdr_buffered(read_stream)?,
2515        })
2516    }
2517}
2518
2519/// Autogenerated definition for type EncryptedBody
2520#[allow(dead_code)]
2521#[cfg(feature = "all-types")]
2522pub type EncryptedBody = LimitedVarOpaque<64000>;
2523
2524/// Autogenerated definition for type SurveyResponseMessage
2525#[allow(dead_code)]
2526#[cfg(feature = "all-types")]
2527#[derive(Debug, Clone, Eq, PartialEq)]
2528pub struct SurveyResponseMessage {
2529    pub surveyor_peer_id: NodeId,
2530    pub surveyed_peer_id: NodeId,
2531    pub ledger_num: Uint32,
2532    pub command_type: SurveyMessageCommandType,
2533    pub encrypted_body: EncryptedBody,
2534}
2535
2536#[cfg(feature = "all-types")]
2537impl XdrCodec for SurveyResponseMessage {
2538    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2539        self.surveyor_peer_id.to_xdr_buffered(write_stream);
2540        self.surveyed_peer_id.to_xdr_buffered(write_stream);
2541        self.ledger_num.to_xdr_buffered(write_stream);
2542        self.command_type.to_xdr_buffered(write_stream);
2543        self.encrypted_body.to_xdr_buffered(write_stream);
2544    }
2545
2546    fn from_xdr_buffered<T: AsRef<[u8]>>(
2547        read_stream: &mut ReadStream<T>,
2548    ) -> Result<Self, DecodeError> {
2549        Ok(SurveyResponseMessage {
2550            surveyor_peer_id: NodeId::from_xdr_buffered(read_stream)?,
2551            surveyed_peer_id: NodeId::from_xdr_buffered(read_stream)?,
2552            ledger_num: Uint32::from_xdr_buffered(read_stream)?,
2553            command_type: SurveyMessageCommandType::from_xdr_buffered(read_stream)?,
2554            encrypted_body: EncryptedBody::from_xdr_buffered(read_stream)?,
2555        })
2556    }
2557}
2558
2559/// Autogenerated definition for type SignedSurveyResponseMessage
2560#[allow(dead_code)]
2561#[cfg(feature = "all-types")]
2562#[derive(Debug, Clone, Eq, PartialEq)]
2563pub struct SignedSurveyResponseMessage {
2564    pub response_signature: Signature,
2565    pub response: SurveyResponseMessage,
2566}
2567
2568#[cfg(feature = "all-types")]
2569impl XdrCodec for SignedSurveyResponseMessage {
2570    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2571        self.response_signature.to_xdr_buffered(write_stream);
2572        self.response.to_xdr_buffered(write_stream);
2573    }
2574
2575    fn from_xdr_buffered<T: AsRef<[u8]>>(
2576        read_stream: &mut ReadStream<T>,
2577    ) -> Result<Self, DecodeError> {
2578        Ok(SignedSurveyResponseMessage {
2579            response_signature: Signature::from_xdr_buffered(read_stream)?,
2580            response: SurveyResponseMessage::from_xdr_buffered(read_stream)?,
2581        })
2582    }
2583}
2584
2585/// Autogenerated definition for type PeerStats
2586#[allow(dead_code)]
2587#[cfg(feature = "all-types")]
2588#[derive(Debug, Clone, Eq, PartialEq)]
2589pub struct PeerStats {
2590    pub id: NodeId,
2591    pub version_str: LimitedString<100>,
2592    pub messages_read: Uint64,
2593    pub messages_written: Uint64,
2594    pub bytes_read: Uint64,
2595    pub bytes_written: Uint64,
2596    pub seconds_connected: Uint64,
2597    pub unique_flood_bytes_recv: Uint64,
2598    pub duplicate_flood_bytes_recv: Uint64,
2599    pub unique_fetch_bytes_recv: Uint64,
2600    pub duplicate_fetch_bytes_recv: Uint64,
2601    pub unique_flood_message_recv: Uint64,
2602    pub duplicate_flood_message_recv: Uint64,
2603    pub unique_fetch_message_recv: Uint64,
2604    pub duplicate_fetch_message_recv: Uint64,
2605}
2606
2607#[cfg(feature = "all-types")]
2608impl XdrCodec for PeerStats {
2609    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2610        self.id.to_xdr_buffered(write_stream);
2611        self.version_str.to_xdr_buffered(write_stream);
2612        self.messages_read.to_xdr_buffered(write_stream);
2613        self.messages_written.to_xdr_buffered(write_stream);
2614        self.bytes_read.to_xdr_buffered(write_stream);
2615        self.bytes_written.to_xdr_buffered(write_stream);
2616        self.seconds_connected.to_xdr_buffered(write_stream);
2617        self.unique_flood_bytes_recv.to_xdr_buffered(write_stream);
2618        self.duplicate_flood_bytes_recv
2619            .to_xdr_buffered(write_stream);
2620        self.unique_fetch_bytes_recv.to_xdr_buffered(write_stream);
2621        self.duplicate_fetch_bytes_recv
2622            .to_xdr_buffered(write_stream);
2623        self.unique_flood_message_recv.to_xdr_buffered(write_stream);
2624        self.duplicate_flood_message_recv
2625            .to_xdr_buffered(write_stream);
2626        self.unique_fetch_message_recv.to_xdr_buffered(write_stream);
2627        self.duplicate_fetch_message_recv
2628            .to_xdr_buffered(write_stream);
2629    }
2630
2631    fn from_xdr_buffered<T: AsRef<[u8]>>(
2632        read_stream: &mut ReadStream<T>,
2633    ) -> Result<Self, DecodeError> {
2634        Ok(PeerStats {
2635            id: NodeId::from_xdr_buffered(read_stream)?,
2636            version_str: LimitedString::<100>::from_xdr_buffered(read_stream)?,
2637            messages_read: Uint64::from_xdr_buffered(read_stream)?,
2638            messages_written: Uint64::from_xdr_buffered(read_stream)?,
2639            bytes_read: Uint64::from_xdr_buffered(read_stream)?,
2640            bytes_written: Uint64::from_xdr_buffered(read_stream)?,
2641            seconds_connected: Uint64::from_xdr_buffered(read_stream)?,
2642            unique_flood_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
2643            duplicate_flood_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
2644            unique_fetch_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
2645            duplicate_fetch_bytes_recv: Uint64::from_xdr_buffered(read_stream)?,
2646            unique_flood_message_recv: Uint64::from_xdr_buffered(read_stream)?,
2647            duplicate_flood_message_recv: Uint64::from_xdr_buffered(read_stream)?,
2648            unique_fetch_message_recv: Uint64::from_xdr_buffered(read_stream)?,
2649            duplicate_fetch_message_recv: Uint64::from_xdr_buffered(read_stream)?,
2650        })
2651    }
2652}
2653
2654/// Autogenerated definition for type PeerStatList
2655#[allow(dead_code)]
2656#[cfg(feature = "all-types")]
2657pub type PeerStatList = LimitedVarArray<PeerStats, 25>;
2658
2659/// Autogenerated definition for type TopologyResponseBody
2660#[allow(dead_code)]
2661#[cfg(feature = "all-types")]
2662#[derive(Debug, Clone, Eq, PartialEq)]
2663pub struct TopologyResponseBody {
2664    pub inbound_peers: PeerStatList,
2665    pub outbound_peers: PeerStatList,
2666    pub total_inbound_peer_count: Uint32,
2667    pub total_outbound_peer_count: Uint32,
2668}
2669
2670#[cfg(feature = "all-types")]
2671impl XdrCodec for TopologyResponseBody {
2672    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2673        self.inbound_peers.to_xdr_buffered(write_stream);
2674        self.outbound_peers.to_xdr_buffered(write_stream);
2675        self.total_inbound_peer_count.to_xdr_buffered(write_stream);
2676        self.total_outbound_peer_count.to_xdr_buffered(write_stream);
2677    }
2678
2679    fn from_xdr_buffered<T: AsRef<[u8]>>(
2680        read_stream: &mut ReadStream<T>,
2681    ) -> Result<Self, DecodeError> {
2682        Ok(TopologyResponseBody {
2683            inbound_peers: PeerStatList::from_xdr_buffered(read_stream)?,
2684            outbound_peers: PeerStatList::from_xdr_buffered(read_stream)?,
2685            total_inbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
2686            total_outbound_peer_count: Uint32::from_xdr_buffered(read_stream)?,
2687        })
2688    }
2689}
2690
2691/// Autogenerated definition for type AuthenticatedMessageV0
2692#[allow(dead_code)]
2693#[cfg(feature = "all-types")]
2694#[derive(Debug, Clone, Eq, PartialEq)]
2695pub struct AuthenticatedMessageV0 {
2696    pub sequence: Uint64,
2697    pub message: StellarMessage,
2698    pub mac: HmacSha256Mac,
2699}
2700
2701#[cfg(feature = "all-types")]
2702impl XdrCodec for AuthenticatedMessageV0 {
2703    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2704        self.sequence.to_xdr_buffered(write_stream);
2705        self.message.to_xdr_buffered(write_stream);
2706        self.mac.to_xdr_buffered(write_stream);
2707    }
2708
2709    fn from_xdr_buffered<T: AsRef<[u8]>>(
2710        read_stream: &mut ReadStream<T>,
2711    ) -> Result<Self, DecodeError> {
2712        Ok(AuthenticatedMessageV0 {
2713            sequence: Uint64::from_xdr_buffered(read_stream)?,
2714            message: StellarMessage::from_xdr_buffered(read_stream)?,
2715            mac: HmacSha256Mac::from_xdr_buffered(read_stream)?,
2716        })
2717    }
2718}
2719
2720/// Autogenerated definition for type MuxedAccountMed25519
2721#[allow(dead_code)]
2722#[derive(Debug, Clone, Eq, PartialEq)]
2723pub struct MuxedAccountMed25519 {
2724    pub id: Uint64,
2725    pub ed25519: Uint256,
2726}
2727
2728impl XdrCodec for MuxedAccountMed25519 {
2729    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2730        self.id.to_xdr_buffered(write_stream);
2731        self.ed25519.to_xdr_buffered(write_stream);
2732    }
2733
2734    fn from_xdr_buffered<T: AsRef<[u8]>>(
2735        read_stream: &mut ReadStream<T>,
2736    ) -> Result<Self, DecodeError> {
2737        Ok(MuxedAccountMed25519 {
2738            id: Uint64::from_xdr_buffered(read_stream)?,
2739            ed25519: Uint256::from_xdr_buffered(read_stream)?,
2740        })
2741    }
2742}
2743
2744/// Autogenerated definition for type DecoratedSignature
2745#[allow(dead_code)]
2746#[derive(Debug, Clone, Eq, PartialEq)]
2747pub struct DecoratedSignature {
2748    pub hint: SignatureHint,
2749    pub signature: Signature,
2750}
2751
2752impl XdrCodec for DecoratedSignature {
2753    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2754        self.hint.to_xdr_buffered(write_stream);
2755        self.signature.to_xdr_buffered(write_stream);
2756    }
2757
2758    fn from_xdr_buffered<T: AsRef<[u8]>>(
2759        read_stream: &mut ReadStream<T>,
2760    ) -> Result<Self, DecodeError> {
2761        Ok(DecoratedSignature {
2762            hint: SignatureHint::from_xdr_buffered(read_stream)?,
2763            signature: Signature::from_xdr_buffered(read_stream)?,
2764        })
2765    }
2766}
2767
2768/// Autogenerated definition for type OperationType
2769#[allow(dead_code)]
2770#[derive(Debug, Copy, Clone, Eq, PartialEq)]
2771pub enum OperationType {
2772    CreateAccount = 0,
2773    Payment = 1,
2774    PathPaymentStrictReceive = 2,
2775    ManageSellOffer = 3,
2776    CreatePassiveSellOffer = 4,
2777    SetOptions = 5,
2778    ChangeTrust = 6,
2779    AllowTrust = 7,
2780    AccountMerge = 8,
2781    Inflation = 9,
2782    ManageData = 10,
2783    BumpSequence = 11,
2784    ManageBuyOffer = 12,
2785    PathPaymentStrictSend = 13,
2786    CreateClaimableBalance = 14,
2787    ClaimClaimableBalance = 15,
2788    BeginSponsoringFutureReserves = 16,
2789    EndSponsoringFutureReserves = 17,
2790    RevokeSponsorship = 18,
2791    Clawback = 19,
2792    ClawbackClaimableBalance = 20,
2793    SetTrustLineFlags = 21,
2794}
2795
2796impl XdrCodec for OperationType {
2797    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2798        let value = *self as i32;
2799        value.to_xdr_buffered(write_stream);
2800    }
2801
2802    fn from_xdr_buffered<T: AsRef<[u8]>>(
2803        read_stream: &mut ReadStream<T>,
2804    ) -> Result<Self, DecodeError> {
2805        let enum_value = i32::from_xdr_buffered(read_stream)?;
2806        match enum_value {
2807            0 => Ok(OperationType::CreateAccount),
2808            1 => Ok(OperationType::Payment),
2809            2 => Ok(OperationType::PathPaymentStrictReceive),
2810            3 => Ok(OperationType::ManageSellOffer),
2811            4 => Ok(OperationType::CreatePassiveSellOffer),
2812            5 => Ok(OperationType::SetOptions),
2813            6 => Ok(OperationType::ChangeTrust),
2814            7 => Ok(OperationType::AllowTrust),
2815            8 => Ok(OperationType::AccountMerge),
2816            9 => Ok(OperationType::Inflation),
2817            10 => Ok(OperationType::ManageData),
2818            11 => Ok(OperationType::BumpSequence),
2819            12 => Ok(OperationType::ManageBuyOffer),
2820            13 => Ok(OperationType::PathPaymentStrictSend),
2821            14 => Ok(OperationType::CreateClaimableBalance),
2822            15 => Ok(OperationType::ClaimClaimableBalance),
2823            16 => Ok(OperationType::BeginSponsoringFutureReserves),
2824            17 => Ok(OperationType::EndSponsoringFutureReserves),
2825            18 => Ok(OperationType::RevokeSponsorship),
2826            19 => Ok(OperationType::Clawback),
2827            20 => Ok(OperationType::ClawbackClaimableBalance),
2828            21 => Ok(OperationType::SetTrustLineFlags),
2829            _ => Err(DecodeError::InvalidEnumDiscriminator {
2830                at_position: read_stream.get_position(),
2831            }),
2832        }
2833    }
2834}
2835
2836/// Autogenerated definition for type CreateAccountOp
2837#[allow(dead_code)]
2838#[derive(Debug, Clone, Eq, PartialEq)]
2839pub struct CreateAccountOp {
2840    pub destination: AccountId,
2841    pub starting_balance: Int64,
2842}
2843
2844impl XdrCodec for CreateAccountOp {
2845    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2846        self.destination.to_xdr_buffered(write_stream);
2847        self.starting_balance.to_xdr_buffered(write_stream);
2848    }
2849
2850    fn from_xdr_buffered<T: AsRef<[u8]>>(
2851        read_stream: &mut ReadStream<T>,
2852    ) -> Result<Self, DecodeError> {
2853        Ok(CreateAccountOp {
2854            destination: AccountId::from_xdr_buffered(read_stream)?,
2855            starting_balance: Int64::from_xdr_buffered(read_stream)?,
2856        })
2857    }
2858}
2859
2860/// Autogenerated definition for type PaymentOp
2861#[allow(dead_code)]
2862#[derive(Debug, Clone, Eq, PartialEq)]
2863pub struct PaymentOp {
2864    pub destination: MuxedAccount,
2865    pub asset: Asset,
2866    pub amount: Int64,
2867}
2868
2869impl XdrCodec for PaymentOp {
2870    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2871        self.destination.to_xdr_buffered(write_stream);
2872        self.asset.to_xdr_buffered(write_stream);
2873        self.amount.to_xdr_buffered(write_stream);
2874    }
2875
2876    fn from_xdr_buffered<T: AsRef<[u8]>>(
2877        read_stream: &mut ReadStream<T>,
2878    ) -> Result<Self, DecodeError> {
2879        Ok(PaymentOp {
2880            destination: MuxedAccount::from_xdr_buffered(read_stream)?,
2881            asset: Asset::from_xdr_buffered(read_stream)?,
2882            amount: Int64::from_xdr_buffered(read_stream)?,
2883        })
2884    }
2885}
2886
2887/// Autogenerated definition for type PathPaymentStrictReceiveOp
2888#[allow(dead_code)]
2889#[derive(Debug, Clone, Eq, PartialEq)]
2890pub struct PathPaymentStrictReceiveOp {
2891    pub send_asset: Asset,
2892    pub send_max: Int64,
2893    pub destination: MuxedAccount,
2894    pub dest_asset: Asset,
2895    pub dest_amount: Int64,
2896    pub path: LimitedVarArray<Asset, 5>,
2897}
2898
2899impl XdrCodec for PathPaymentStrictReceiveOp {
2900    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2901        self.send_asset.to_xdr_buffered(write_stream);
2902        self.send_max.to_xdr_buffered(write_stream);
2903        self.destination.to_xdr_buffered(write_stream);
2904        self.dest_asset.to_xdr_buffered(write_stream);
2905        self.dest_amount.to_xdr_buffered(write_stream);
2906        self.path.to_xdr_buffered(write_stream);
2907    }
2908
2909    fn from_xdr_buffered<T: AsRef<[u8]>>(
2910        read_stream: &mut ReadStream<T>,
2911    ) -> Result<Self, DecodeError> {
2912        Ok(PathPaymentStrictReceiveOp {
2913            send_asset: Asset::from_xdr_buffered(read_stream)?,
2914            send_max: Int64::from_xdr_buffered(read_stream)?,
2915            destination: MuxedAccount::from_xdr_buffered(read_stream)?,
2916            dest_asset: Asset::from_xdr_buffered(read_stream)?,
2917            dest_amount: Int64::from_xdr_buffered(read_stream)?,
2918            path: LimitedVarArray::<Asset, 5>::from_xdr_buffered(read_stream)?,
2919        })
2920    }
2921}
2922
2923/// Autogenerated definition for type PathPaymentStrictSendOp
2924#[allow(dead_code)]
2925#[derive(Debug, Clone, Eq, PartialEq)]
2926pub struct PathPaymentStrictSendOp {
2927    pub send_asset: Asset,
2928    pub send_amount: Int64,
2929    pub destination: MuxedAccount,
2930    pub dest_asset: Asset,
2931    pub dest_min: Int64,
2932    pub path: LimitedVarArray<Asset, 5>,
2933}
2934
2935impl XdrCodec for PathPaymentStrictSendOp {
2936    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2937        self.send_asset.to_xdr_buffered(write_stream);
2938        self.send_amount.to_xdr_buffered(write_stream);
2939        self.destination.to_xdr_buffered(write_stream);
2940        self.dest_asset.to_xdr_buffered(write_stream);
2941        self.dest_min.to_xdr_buffered(write_stream);
2942        self.path.to_xdr_buffered(write_stream);
2943    }
2944
2945    fn from_xdr_buffered<T: AsRef<[u8]>>(
2946        read_stream: &mut ReadStream<T>,
2947    ) -> Result<Self, DecodeError> {
2948        Ok(PathPaymentStrictSendOp {
2949            send_asset: Asset::from_xdr_buffered(read_stream)?,
2950            send_amount: Int64::from_xdr_buffered(read_stream)?,
2951            destination: MuxedAccount::from_xdr_buffered(read_stream)?,
2952            dest_asset: Asset::from_xdr_buffered(read_stream)?,
2953            dest_min: Int64::from_xdr_buffered(read_stream)?,
2954            path: LimitedVarArray::<Asset, 5>::from_xdr_buffered(read_stream)?,
2955        })
2956    }
2957}
2958
2959/// Autogenerated definition for type ManageSellOfferOp
2960#[allow(dead_code)]
2961#[derive(Debug, Clone, Eq, PartialEq)]
2962pub struct ManageSellOfferOp {
2963    pub selling: Asset,
2964    pub buying: Asset,
2965    pub amount: Int64,
2966    pub price: Price,
2967    pub offer_id: Int64,
2968}
2969
2970impl XdrCodec for ManageSellOfferOp {
2971    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
2972        self.selling.to_xdr_buffered(write_stream);
2973        self.buying.to_xdr_buffered(write_stream);
2974        self.amount.to_xdr_buffered(write_stream);
2975        self.price.to_xdr_buffered(write_stream);
2976        self.offer_id.to_xdr_buffered(write_stream);
2977    }
2978
2979    fn from_xdr_buffered<T: AsRef<[u8]>>(
2980        read_stream: &mut ReadStream<T>,
2981    ) -> Result<Self, DecodeError> {
2982        Ok(ManageSellOfferOp {
2983            selling: Asset::from_xdr_buffered(read_stream)?,
2984            buying: Asset::from_xdr_buffered(read_stream)?,
2985            amount: Int64::from_xdr_buffered(read_stream)?,
2986            price: Price::from_xdr_buffered(read_stream)?,
2987            offer_id: Int64::from_xdr_buffered(read_stream)?,
2988        })
2989    }
2990}
2991
2992/// Autogenerated definition for type ManageBuyOfferOp
2993#[allow(dead_code)]
2994#[derive(Debug, Clone, Eq, PartialEq)]
2995pub struct ManageBuyOfferOp {
2996    pub selling: Asset,
2997    pub buying: Asset,
2998    pub buy_amount: Int64,
2999    pub price: Price,
3000    pub offer_id: Int64,
3001}
3002
3003impl XdrCodec for ManageBuyOfferOp {
3004    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3005        self.selling.to_xdr_buffered(write_stream);
3006        self.buying.to_xdr_buffered(write_stream);
3007        self.buy_amount.to_xdr_buffered(write_stream);
3008        self.price.to_xdr_buffered(write_stream);
3009        self.offer_id.to_xdr_buffered(write_stream);
3010    }
3011
3012    fn from_xdr_buffered<T: AsRef<[u8]>>(
3013        read_stream: &mut ReadStream<T>,
3014    ) -> Result<Self, DecodeError> {
3015        Ok(ManageBuyOfferOp {
3016            selling: Asset::from_xdr_buffered(read_stream)?,
3017            buying: Asset::from_xdr_buffered(read_stream)?,
3018            buy_amount: Int64::from_xdr_buffered(read_stream)?,
3019            price: Price::from_xdr_buffered(read_stream)?,
3020            offer_id: Int64::from_xdr_buffered(read_stream)?,
3021        })
3022    }
3023}
3024
3025/// Autogenerated definition for type CreatePassiveSellOfferOp
3026#[allow(dead_code)]
3027#[derive(Debug, Clone, Eq, PartialEq)]
3028pub struct CreatePassiveSellOfferOp {
3029    pub selling: Asset,
3030    pub buying: Asset,
3031    pub amount: Int64,
3032    pub price: Price,
3033}
3034
3035impl XdrCodec for CreatePassiveSellOfferOp {
3036    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3037        self.selling.to_xdr_buffered(write_stream);
3038        self.buying.to_xdr_buffered(write_stream);
3039        self.amount.to_xdr_buffered(write_stream);
3040        self.price.to_xdr_buffered(write_stream);
3041    }
3042
3043    fn from_xdr_buffered<T: AsRef<[u8]>>(
3044        read_stream: &mut ReadStream<T>,
3045    ) -> Result<Self, DecodeError> {
3046        Ok(CreatePassiveSellOfferOp {
3047            selling: Asset::from_xdr_buffered(read_stream)?,
3048            buying: Asset::from_xdr_buffered(read_stream)?,
3049            amount: Int64::from_xdr_buffered(read_stream)?,
3050            price: Price::from_xdr_buffered(read_stream)?,
3051        })
3052    }
3053}
3054
3055/// Autogenerated definition for type SetOptionsOp
3056#[allow(dead_code)]
3057#[derive(Debug, Clone, Eq, PartialEq)]
3058pub struct SetOptionsOp {
3059    pub inflation_dest: Option<AccountId>,
3060    pub clear_flags: Option<Uint32>,
3061    pub set_flags: Option<Uint32>,
3062    pub master_weight: Option<Uint32>,
3063    pub low_threshold: Option<Uint32>,
3064    pub med_threshold: Option<Uint32>,
3065    pub high_threshold: Option<Uint32>,
3066    pub home_domain: Option<String32>,
3067    pub signer: Option<Signer>,
3068}
3069
3070impl XdrCodec for SetOptionsOp {
3071    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3072        self.inflation_dest.to_xdr_buffered(write_stream);
3073        self.clear_flags.to_xdr_buffered(write_stream);
3074        self.set_flags.to_xdr_buffered(write_stream);
3075        self.master_weight.to_xdr_buffered(write_stream);
3076        self.low_threshold.to_xdr_buffered(write_stream);
3077        self.med_threshold.to_xdr_buffered(write_stream);
3078        self.high_threshold.to_xdr_buffered(write_stream);
3079        self.home_domain.to_xdr_buffered(write_stream);
3080        self.signer.to_xdr_buffered(write_stream);
3081    }
3082
3083    fn from_xdr_buffered<T: AsRef<[u8]>>(
3084        read_stream: &mut ReadStream<T>,
3085    ) -> Result<Self, DecodeError> {
3086        Ok(SetOptionsOp {
3087            inflation_dest: Option::<AccountId>::from_xdr_buffered(read_stream)?,
3088            clear_flags: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3089            set_flags: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3090            master_weight: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3091            low_threshold: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3092            med_threshold: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3093            high_threshold: Option::<Uint32>::from_xdr_buffered(read_stream)?,
3094            home_domain: Option::<String32>::from_xdr_buffered(read_stream)?,
3095            signer: Option::<Signer>::from_xdr_buffered(read_stream)?,
3096        })
3097    }
3098}
3099
3100/// Autogenerated definition for type ChangeTrustOp
3101#[allow(dead_code)]
3102#[derive(Debug, Clone, Eq, PartialEq)]
3103pub struct ChangeTrustOp {
3104    pub line: ChangeTrustAsset,
3105    pub limit: Int64,
3106}
3107
3108impl XdrCodec for ChangeTrustOp {
3109    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3110        self.line.to_xdr_buffered(write_stream);
3111        self.limit.to_xdr_buffered(write_stream);
3112    }
3113
3114    fn from_xdr_buffered<T: AsRef<[u8]>>(
3115        read_stream: &mut ReadStream<T>,
3116    ) -> Result<Self, DecodeError> {
3117        Ok(ChangeTrustOp {
3118            line: ChangeTrustAsset::from_xdr_buffered(read_stream)?,
3119            limit: Int64::from_xdr_buffered(read_stream)?,
3120        })
3121    }
3122}
3123
3124/// Autogenerated definition for type AllowTrustOp
3125#[allow(dead_code)]
3126#[derive(Debug, Clone, Eq, PartialEq)]
3127pub struct AllowTrustOp {
3128    pub trustor: AccountId,
3129    pub asset: AssetCode,
3130    pub authorize: Uint32,
3131}
3132
3133impl XdrCodec for AllowTrustOp {
3134    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3135        self.trustor.to_xdr_buffered(write_stream);
3136        self.asset.to_xdr_buffered(write_stream);
3137        self.authorize.to_xdr_buffered(write_stream);
3138    }
3139
3140    fn from_xdr_buffered<T: AsRef<[u8]>>(
3141        read_stream: &mut ReadStream<T>,
3142    ) -> Result<Self, DecodeError> {
3143        Ok(AllowTrustOp {
3144            trustor: AccountId::from_xdr_buffered(read_stream)?,
3145            asset: AssetCode::from_xdr_buffered(read_stream)?,
3146            authorize: Uint32::from_xdr_buffered(read_stream)?,
3147        })
3148    }
3149}
3150
3151/// Autogenerated definition for type ManageDataOp
3152#[allow(dead_code)]
3153#[derive(Debug, Clone, Eq, PartialEq)]
3154pub struct ManageDataOp {
3155    pub data_name: String64,
3156    pub data_value: Option<DataValue>,
3157}
3158
3159impl XdrCodec for ManageDataOp {
3160    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3161        self.data_name.to_xdr_buffered(write_stream);
3162        self.data_value.to_xdr_buffered(write_stream);
3163    }
3164
3165    fn from_xdr_buffered<T: AsRef<[u8]>>(
3166        read_stream: &mut ReadStream<T>,
3167    ) -> Result<Self, DecodeError> {
3168        Ok(ManageDataOp {
3169            data_name: String64::from_xdr_buffered(read_stream)?,
3170            data_value: Option::<DataValue>::from_xdr_buffered(read_stream)?,
3171        })
3172    }
3173}
3174
3175/// Autogenerated definition for type BumpSequenceOp
3176#[allow(dead_code)]
3177#[derive(Debug, Clone, Eq, PartialEq)]
3178pub struct BumpSequenceOp {
3179    pub bump_to: SequenceNumber,
3180}
3181
3182impl XdrCodec for BumpSequenceOp {
3183    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3184        self.bump_to.to_xdr_buffered(write_stream);
3185    }
3186
3187    fn from_xdr_buffered<T: AsRef<[u8]>>(
3188        read_stream: &mut ReadStream<T>,
3189    ) -> Result<Self, DecodeError> {
3190        Ok(BumpSequenceOp {
3191            bump_to: SequenceNumber::from_xdr_buffered(read_stream)?,
3192        })
3193    }
3194}
3195
3196/// Autogenerated definition for type CreateClaimableBalanceOp
3197#[allow(dead_code)]
3198#[derive(Debug, Clone, Eq, PartialEq)]
3199pub struct CreateClaimableBalanceOp {
3200    pub asset: Asset,
3201    pub amount: Int64,
3202    pub claimants: LimitedVarArray<Claimant, 10>,
3203}
3204
3205impl XdrCodec for CreateClaimableBalanceOp {
3206    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3207        self.asset.to_xdr_buffered(write_stream);
3208        self.amount.to_xdr_buffered(write_stream);
3209        self.claimants.to_xdr_buffered(write_stream);
3210    }
3211
3212    fn from_xdr_buffered<T: AsRef<[u8]>>(
3213        read_stream: &mut ReadStream<T>,
3214    ) -> Result<Self, DecodeError> {
3215        Ok(CreateClaimableBalanceOp {
3216            asset: Asset::from_xdr_buffered(read_stream)?,
3217            amount: Int64::from_xdr_buffered(read_stream)?,
3218            claimants: LimitedVarArray::<Claimant, 10>::from_xdr_buffered(read_stream)?,
3219        })
3220    }
3221}
3222
3223/// Autogenerated definition for type ClaimClaimableBalanceOp
3224#[allow(dead_code)]
3225#[derive(Debug, Clone, Eq, PartialEq)]
3226pub struct ClaimClaimableBalanceOp {
3227    pub balance_id: ClaimableBalanceId,
3228}
3229
3230impl XdrCodec for ClaimClaimableBalanceOp {
3231    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3232        self.balance_id.to_xdr_buffered(write_stream);
3233    }
3234
3235    fn from_xdr_buffered<T: AsRef<[u8]>>(
3236        read_stream: &mut ReadStream<T>,
3237    ) -> Result<Self, DecodeError> {
3238        Ok(ClaimClaimableBalanceOp {
3239            balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)?,
3240        })
3241    }
3242}
3243
3244/// Autogenerated definition for type BeginSponsoringFutureReservesOp
3245#[allow(dead_code)]
3246#[derive(Debug, Clone, Eq, PartialEq)]
3247pub struct BeginSponsoringFutureReservesOp {
3248    pub sponsored_id: AccountId,
3249}
3250
3251impl XdrCodec for BeginSponsoringFutureReservesOp {
3252    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3253        self.sponsored_id.to_xdr_buffered(write_stream);
3254    }
3255
3256    fn from_xdr_buffered<T: AsRef<[u8]>>(
3257        read_stream: &mut ReadStream<T>,
3258    ) -> Result<Self, DecodeError> {
3259        Ok(BeginSponsoringFutureReservesOp {
3260            sponsored_id: AccountId::from_xdr_buffered(read_stream)?,
3261        })
3262    }
3263}
3264
3265/// Autogenerated definition for type RevokeSponsorshipType
3266#[allow(dead_code)]
3267#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3268pub enum RevokeSponsorshipType {
3269    RevokeSponsorshipLedgerEntry = 0,
3270    RevokeSponsorshipSigner = 1,
3271}
3272
3273impl XdrCodec for RevokeSponsorshipType {
3274    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3275        let value = *self as i32;
3276        value.to_xdr_buffered(write_stream);
3277    }
3278
3279    fn from_xdr_buffered<T: AsRef<[u8]>>(
3280        read_stream: &mut ReadStream<T>,
3281    ) -> Result<Self, DecodeError> {
3282        let enum_value = i32::from_xdr_buffered(read_stream)?;
3283        match enum_value {
3284            0 => Ok(RevokeSponsorshipType::RevokeSponsorshipLedgerEntry),
3285            1 => Ok(RevokeSponsorshipType::RevokeSponsorshipSigner),
3286            _ => Err(DecodeError::InvalidEnumDiscriminator {
3287                at_position: read_stream.get_position(),
3288            }),
3289        }
3290    }
3291}
3292
3293/// Autogenerated definition for type RevokeSponsorshipOpSigner
3294#[allow(dead_code)]
3295#[derive(Debug, Clone, Eq, PartialEq)]
3296pub struct RevokeSponsorshipOpSigner {
3297    pub account_id: AccountId,
3298    pub signer_key: SignerKey,
3299}
3300
3301impl XdrCodec for RevokeSponsorshipOpSigner {
3302    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3303        self.account_id.to_xdr_buffered(write_stream);
3304        self.signer_key.to_xdr_buffered(write_stream);
3305    }
3306
3307    fn from_xdr_buffered<T: AsRef<[u8]>>(
3308        read_stream: &mut ReadStream<T>,
3309    ) -> Result<Self, DecodeError> {
3310        Ok(RevokeSponsorshipOpSigner {
3311            account_id: AccountId::from_xdr_buffered(read_stream)?,
3312            signer_key: SignerKey::from_xdr_buffered(read_stream)?,
3313        })
3314    }
3315}
3316
3317/// Autogenerated definition for type ClawbackOp
3318#[allow(dead_code)]
3319#[derive(Debug, Clone, Eq, PartialEq)]
3320pub struct ClawbackOp {
3321    pub asset: Asset,
3322    pub from: MuxedAccount,
3323    pub amount: Int64,
3324}
3325
3326impl XdrCodec for ClawbackOp {
3327    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3328        self.asset.to_xdr_buffered(write_stream);
3329        self.from.to_xdr_buffered(write_stream);
3330        self.amount.to_xdr_buffered(write_stream);
3331    }
3332
3333    fn from_xdr_buffered<T: AsRef<[u8]>>(
3334        read_stream: &mut ReadStream<T>,
3335    ) -> Result<Self, DecodeError> {
3336        Ok(ClawbackOp {
3337            asset: Asset::from_xdr_buffered(read_stream)?,
3338            from: MuxedAccount::from_xdr_buffered(read_stream)?,
3339            amount: Int64::from_xdr_buffered(read_stream)?,
3340        })
3341    }
3342}
3343
3344/// Autogenerated definition for type ClawbackClaimableBalanceOp
3345#[allow(dead_code)]
3346#[derive(Debug, Clone, Eq, PartialEq)]
3347pub struct ClawbackClaimableBalanceOp {
3348    pub balance_id: ClaimableBalanceId,
3349}
3350
3351impl XdrCodec for ClawbackClaimableBalanceOp {
3352    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3353        self.balance_id.to_xdr_buffered(write_stream);
3354    }
3355
3356    fn from_xdr_buffered<T: AsRef<[u8]>>(
3357        read_stream: &mut ReadStream<T>,
3358    ) -> Result<Self, DecodeError> {
3359        Ok(ClawbackClaimableBalanceOp {
3360            balance_id: ClaimableBalanceId::from_xdr_buffered(read_stream)?,
3361        })
3362    }
3363}
3364
3365/// Autogenerated definition for type SetTrustLineFlagsOp
3366#[allow(dead_code)]
3367#[derive(Debug, Clone, Eq, PartialEq)]
3368pub struct SetTrustLineFlagsOp {
3369    pub trustor: AccountId,
3370    pub asset: Asset,
3371    pub clear_flags: Uint32,
3372    pub set_flags: Uint32,
3373}
3374
3375impl XdrCodec for SetTrustLineFlagsOp {
3376    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3377        self.trustor.to_xdr_buffered(write_stream);
3378        self.asset.to_xdr_buffered(write_stream);
3379        self.clear_flags.to_xdr_buffered(write_stream);
3380        self.set_flags.to_xdr_buffered(write_stream);
3381    }
3382
3383    fn from_xdr_buffered<T: AsRef<[u8]>>(
3384        read_stream: &mut ReadStream<T>,
3385    ) -> Result<Self, DecodeError> {
3386        Ok(SetTrustLineFlagsOp {
3387            trustor: AccountId::from_xdr_buffered(read_stream)?,
3388            asset: Asset::from_xdr_buffered(read_stream)?,
3389            clear_flags: Uint32::from_xdr_buffered(read_stream)?,
3390            set_flags: Uint32::from_xdr_buffered(read_stream)?,
3391        })
3392    }
3393}
3394
3395/// Autogenerated definition for type Operation
3396#[allow(dead_code)]
3397#[derive(Debug, Clone, Eq, PartialEq)]
3398pub struct Operation {
3399    pub source_account: Option<MuxedAccount>,
3400    pub body: OperationBody,
3401}
3402
3403impl XdrCodec for Operation {
3404    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3405        self.source_account.to_xdr_buffered(write_stream);
3406        self.body.to_xdr_buffered(write_stream);
3407    }
3408
3409    fn from_xdr_buffered<T: AsRef<[u8]>>(
3410        read_stream: &mut ReadStream<T>,
3411    ) -> Result<Self, DecodeError> {
3412        Ok(Operation {
3413            source_account: Option::<MuxedAccount>::from_xdr_buffered(read_stream)?,
3414            body: OperationBody::from_xdr_buffered(read_stream)?,
3415        })
3416    }
3417}
3418
3419/// Autogenerated definition for type OperationIdId
3420#[allow(dead_code)]
3421#[cfg(feature = "all-types")]
3422#[derive(Debug, Clone, Eq, PartialEq)]
3423pub struct OperationIdId {
3424    pub source_account: AccountId,
3425    pub seq_num: SequenceNumber,
3426    pub op_num: Uint32,
3427}
3428
3429#[cfg(feature = "all-types")]
3430impl XdrCodec for OperationIdId {
3431    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3432        self.source_account.to_xdr_buffered(write_stream);
3433        self.seq_num.to_xdr_buffered(write_stream);
3434        self.op_num.to_xdr_buffered(write_stream);
3435    }
3436
3437    fn from_xdr_buffered<T: AsRef<[u8]>>(
3438        read_stream: &mut ReadStream<T>,
3439    ) -> Result<Self, DecodeError> {
3440        Ok(OperationIdId {
3441            source_account: AccountId::from_xdr_buffered(read_stream)?,
3442            seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
3443            op_num: Uint32::from_xdr_buffered(read_stream)?,
3444        })
3445    }
3446}
3447
3448/// Autogenerated definition for type MemoType
3449#[allow(dead_code)]
3450#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3451pub enum MemoType {
3452    MemoNone = 0,
3453    MemoText = 1,
3454    MemoId = 2,
3455    MemoHash = 3,
3456    MemoReturn = 4,
3457}
3458
3459impl XdrCodec for MemoType {
3460    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3461        let value = *self as i32;
3462        value.to_xdr_buffered(write_stream);
3463    }
3464
3465    fn from_xdr_buffered<T: AsRef<[u8]>>(
3466        read_stream: &mut ReadStream<T>,
3467    ) -> Result<Self, DecodeError> {
3468        let enum_value = i32::from_xdr_buffered(read_stream)?;
3469        match enum_value {
3470            0 => Ok(MemoType::MemoNone),
3471            1 => Ok(MemoType::MemoText),
3472            2 => Ok(MemoType::MemoId),
3473            3 => Ok(MemoType::MemoHash),
3474            4 => Ok(MemoType::MemoReturn),
3475            _ => Err(DecodeError::InvalidEnumDiscriminator {
3476                at_position: read_stream.get_position(),
3477            }),
3478        }
3479    }
3480}
3481
3482/// Autogenerated definition for type TimeBounds
3483#[allow(dead_code)]
3484#[derive(Debug, Clone, Eq, PartialEq)]
3485pub struct TimeBounds {
3486    pub min_time: TimePoint,
3487    pub max_time: TimePoint,
3488}
3489
3490impl XdrCodec for TimeBounds {
3491    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3492        self.min_time.to_xdr_buffered(write_stream);
3493        self.max_time.to_xdr_buffered(write_stream);
3494    }
3495
3496    fn from_xdr_buffered<T: AsRef<[u8]>>(
3497        read_stream: &mut ReadStream<T>,
3498    ) -> Result<Self, DecodeError> {
3499        Ok(TimeBounds {
3500            min_time: TimePoint::from_xdr_buffered(read_stream)?,
3501            max_time: TimePoint::from_xdr_buffered(read_stream)?,
3502        })
3503    }
3504}
3505
3506/// Autogenerated definition for type TransactionV0
3507#[allow(dead_code)]
3508#[derive(Debug, Clone, Eq, PartialEq)]
3509pub struct TransactionV0 {
3510    pub source_account_ed25519: Uint256,
3511    pub fee: Uint32,
3512    pub seq_num: SequenceNumber,
3513    pub time_bounds: Option<TimeBounds>,
3514    pub memo: Memo,
3515    pub operations: LimitedVarArray<Operation, MAX_OPS_PER_TX>,
3516    pub ext: TransactionV0Ext,
3517}
3518
3519impl XdrCodec for TransactionV0 {
3520    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3521        self.source_account_ed25519.to_xdr_buffered(write_stream);
3522        self.fee.to_xdr_buffered(write_stream);
3523        self.seq_num.to_xdr_buffered(write_stream);
3524        self.time_bounds.to_xdr_buffered(write_stream);
3525        self.memo.to_xdr_buffered(write_stream);
3526        self.operations.to_xdr_buffered(write_stream);
3527        self.ext.to_xdr_buffered(write_stream);
3528    }
3529
3530    fn from_xdr_buffered<T: AsRef<[u8]>>(
3531        read_stream: &mut ReadStream<T>,
3532    ) -> Result<Self, DecodeError> {
3533        Ok(TransactionV0 {
3534            source_account_ed25519: Uint256::from_xdr_buffered(read_stream)?,
3535            fee: Uint32::from_xdr_buffered(read_stream)?,
3536            seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
3537            time_bounds: Option::<TimeBounds>::from_xdr_buffered(read_stream)?,
3538            memo: Memo::from_xdr_buffered(read_stream)?,
3539            operations: LimitedVarArray::<Operation, MAX_OPS_PER_TX>::from_xdr_buffered(
3540                read_stream,
3541            )?,
3542            ext: TransactionV0Ext::from_xdr_buffered(read_stream)?,
3543        })
3544    }
3545}
3546
3547/// Autogenerated definition for type TransactionV0Envelope
3548#[allow(dead_code)]
3549#[derive(Debug, Clone, Eq, PartialEq)]
3550pub struct TransactionV0Envelope {
3551    pub tx: TransactionV0,
3552    pub signatures: LimitedVarArray<DecoratedSignature, 20>,
3553}
3554
3555impl XdrCodec for TransactionV0Envelope {
3556    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3557        self.tx.to_xdr_buffered(write_stream);
3558        self.signatures.to_xdr_buffered(write_stream);
3559    }
3560
3561    fn from_xdr_buffered<T: AsRef<[u8]>>(
3562        read_stream: &mut ReadStream<T>,
3563    ) -> Result<Self, DecodeError> {
3564        Ok(TransactionV0Envelope {
3565            tx: TransactionV0::from_xdr_buffered(read_stream)?,
3566            signatures: LimitedVarArray::<DecoratedSignature, 20>::from_xdr_buffered(read_stream)?,
3567        })
3568    }
3569}
3570
3571/// Autogenerated definition for type Transaction
3572#[allow(dead_code)]
3573#[derive(Debug, Clone, Eq, PartialEq)]
3574pub struct Transaction {
3575    pub source_account: MuxedAccount,
3576    pub fee: Uint32,
3577    pub seq_num: SequenceNumber,
3578    pub time_bounds: Option<TimeBounds>,
3579    pub memo: Memo,
3580    pub operations: LimitedVarArray<Operation, MAX_OPS_PER_TX>,
3581    pub ext: TransactionExt,
3582}
3583
3584impl XdrCodec for Transaction {
3585    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3586        self.source_account.to_xdr_buffered(write_stream);
3587        self.fee.to_xdr_buffered(write_stream);
3588        self.seq_num.to_xdr_buffered(write_stream);
3589        self.time_bounds.to_xdr_buffered(write_stream);
3590        self.memo.to_xdr_buffered(write_stream);
3591        self.operations.to_xdr_buffered(write_stream);
3592        self.ext.to_xdr_buffered(write_stream);
3593    }
3594
3595    fn from_xdr_buffered<T: AsRef<[u8]>>(
3596        read_stream: &mut ReadStream<T>,
3597    ) -> Result<Self, DecodeError> {
3598        Ok(Transaction {
3599            source_account: MuxedAccount::from_xdr_buffered(read_stream)?,
3600            fee: Uint32::from_xdr_buffered(read_stream)?,
3601            seq_num: SequenceNumber::from_xdr_buffered(read_stream)?,
3602            time_bounds: Option::<TimeBounds>::from_xdr_buffered(read_stream)?,
3603            memo: Memo::from_xdr_buffered(read_stream)?,
3604            operations: LimitedVarArray::<Operation, MAX_OPS_PER_TX>::from_xdr_buffered(
3605                read_stream,
3606            )?,
3607            ext: TransactionExt::from_xdr_buffered(read_stream)?,
3608        })
3609    }
3610}
3611
3612/// Autogenerated definition for type TransactionV1Envelope
3613#[allow(dead_code)]
3614#[derive(Debug, Clone, Eq, PartialEq)]
3615pub struct TransactionV1Envelope {
3616    pub tx: Transaction,
3617    pub signatures: LimitedVarArray<DecoratedSignature, 20>,
3618}
3619
3620impl XdrCodec for TransactionV1Envelope {
3621    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3622        self.tx.to_xdr_buffered(write_stream);
3623        self.signatures.to_xdr_buffered(write_stream);
3624    }
3625
3626    fn from_xdr_buffered<T: AsRef<[u8]>>(
3627        read_stream: &mut ReadStream<T>,
3628    ) -> Result<Self, DecodeError> {
3629        Ok(TransactionV1Envelope {
3630            tx: Transaction::from_xdr_buffered(read_stream)?,
3631            signatures: LimitedVarArray::<DecoratedSignature, 20>::from_xdr_buffered(read_stream)?,
3632        })
3633    }
3634}
3635
3636/// Autogenerated definition for type FeeBumpTransaction
3637#[allow(dead_code)]
3638#[derive(Debug, Clone, Eq, PartialEq)]
3639pub struct FeeBumpTransaction {
3640    pub fee_source: MuxedAccount,
3641    pub fee: Int64,
3642    pub inner_tx: FeeBumpTransactionInnerTx,
3643    pub ext: FeeBumpTransactionExt,
3644}
3645
3646impl XdrCodec for FeeBumpTransaction {
3647    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3648        self.fee_source.to_xdr_buffered(write_stream);
3649        self.fee.to_xdr_buffered(write_stream);
3650        self.inner_tx.to_xdr_buffered(write_stream);
3651        self.ext.to_xdr_buffered(write_stream);
3652    }
3653
3654    fn from_xdr_buffered<T: AsRef<[u8]>>(
3655        read_stream: &mut ReadStream<T>,
3656    ) -> Result<Self, DecodeError> {
3657        Ok(FeeBumpTransaction {
3658            fee_source: MuxedAccount::from_xdr_buffered(read_stream)?,
3659            fee: Int64::from_xdr_buffered(read_stream)?,
3660            inner_tx: FeeBumpTransactionInnerTx::from_xdr_buffered(read_stream)?,
3661            ext: FeeBumpTransactionExt::from_xdr_buffered(read_stream)?,
3662        })
3663    }
3664}
3665
3666/// Autogenerated definition for type FeeBumpTransactionEnvelope
3667#[allow(dead_code)]
3668#[derive(Debug, Clone, Eq, PartialEq)]
3669pub struct FeeBumpTransactionEnvelope {
3670    pub tx: FeeBumpTransaction,
3671    pub signatures: LimitedVarArray<DecoratedSignature, 20>,
3672}
3673
3674impl XdrCodec for FeeBumpTransactionEnvelope {
3675    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3676        self.tx.to_xdr_buffered(write_stream);
3677        self.signatures.to_xdr_buffered(write_stream);
3678    }
3679
3680    fn from_xdr_buffered<T: AsRef<[u8]>>(
3681        read_stream: &mut ReadStream<T>,
3682    ) -> Result<Self, DecodeError> {
3683        Ok(FeeBumpTransactionEnvelope {
3684            tx: FeeBumpTransaction::from_xdr_buffered(read_stream)?,
3685            signatures: LimitedVarArray::<DecoratedSignature, 20>::from_xdr_buffered(read_stream)?,
3686        })
3687    }
3688}
3689
3690/// Autogenerated definition for type TransactionSignaturePayload
3691#[allow(dead_code)]
3692#[derive(Debug, Clone, Eq, PartialEq)]
3693pub struct TransactionSignaturePayload {
3694    pub network_id: Hash,
3695    pub tagged_transaction: TransactionSignaturePayloadTaggedTransaction,
3696}
3697
3698impl XdrCodec for TransactionSignaturePayload {
3699    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3700        self.network_id.to_xdr_buffered(write_stream);
3701        self.tagged_transaction.to_xdr_buffered(write_stream);
3702    }
3703
3704    fn from_xdr_buffered<T: AsRef<[u8]>>(
3705        read_stream: &mut ReadStream<T>,
3706    ) -> Result<Self, DecodeError> {
3707        Ok(TransactionSignaturePayload {
3708            network_id: Hash::from_xdr_buffered(read_stream)?,
3709            tagged_transaction: TransactionSignaturePayloadTaggedTransaction::from_xdr_buffered(
3710                read_stream,
3711            )?,
3712        })
3713    }
3714}
3715
3716/// Autogenerated definition for type ClaimAtomType
3717#[allow(dead_code)]
3718#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3719pub enum ClaimAtomType {
3720    ClaimAtomTypeV0 = 0,
3721    ClaimAtomTypeOrderBook = 1,
3722}
3723
3724impl XdrCodec for ClaimAtomType {
3725    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3726        let value = *self as i32;
3727        value.to_xdr_buffered(write_stream);
3728    }
3729
3730    fn from_xdr_buffered<T: AsRef<[u8]>>(
3731        read_stream: &mut ReadStream<T>,
3732    ) -> Result<Self, DecodeError> {
3733        let enum_value = i32::from_xdr_buffered(read_stream)?;
3734        match enum_value {
3735            0 => Ok(ClaimAtomType::ClaimAtomTypeV0),
3736            1 => Ok(ClaimAtomType::ClaimAtomTypeOrderBook),
3737            _ => Err(DecodeError::InvalidEnumDiscriminator {
3738                at_position: read_stream.get_position(),
3739            }),
3740        }
3741    }
3742}
3743
3744/// Autogenerated definition for type ClaimOfferAtomV0
3745#[allow(dead_code)]
3746#[derive(Debug, Clone, Eq, PartialEq)]
3747pub struct ClaimOfferAtomV0 {
3748    pub seller_ed25519: Uint256,
3749    pub offer_id: Int64,
3750    pub asset_sold: Asset,
3751    pub amount_sold: Int64,
3752    pub asset_bought: Asset,
3753    pub amount_bought: Int64,
3754}
3755
3756impl XdrCodec for ClaimOfferAtomV0 {
3757    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3758        self.seller_ed25519.to_xdr_buffered(write_stream);
3759        self.offer_id.to_xdr_buffered(write_stream);
3760        self.asset_sold.to_xdr_buffered(write_stream);
3761        self.amount_sold.to_xdr_buffered(write_stream);
3762        self.asset_bought.to_xdr_buffered(write_stream);
3763        self.amount_bought.to_xdr_buffered(write_stream);
3764    }
3765
3766    fn from_xdr_buffered<T: AsRef<[u8]>>(
3767        read_stream: &mut ReadStream<T>,
3768    ) -> Result<Self, DecodeError> {
3769        Ok(ClaimOfferAtomV0 {
3770            seller_ed25519: Uint256::from_xdr_buffered(read_stream)?,
3771            offer_id: Int64::from_xdr_buffered(read_stream)?,
3772            asset_sold: Asset::from_xdr_buffered(read_stream)?,
3773            amount_sold: Int64::from_xdr_buffered(read_stream)?,
3774            asset_bought: Asset::from_xdr_buffered(read_stream)?,
3775            amount_bought: Int64::from_xdr_buffered(read_stream)?,
3776        })
3777    }
3778}
3779
3780/// Autogenerated definition for type ClaimOfferAtom
3781#[allow(dead_code)]
3782#[derive(Debug, Clone, Eq, PartialEq)]
3783pub struct ClaimOfferAtom {
3784    pub seller_id: AccountId,
3785    pub offer_id: Int64,
3786    pub asset_sold: Asset,
3787    pub amount_sold: Int64,
3788    pub asset_bought: Asset,
3789    pub amount_bought: Int64,
3790}
3791
3792impl XdrCodec for ClaimOfferAtom {
3793    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3794        self.seller_id.to_xdr_buffered(write_stream);
3795        self.offer_id.to_xdr_buffered(write_stream);
3796        self.asset_sold.to_xdr_buffered(write_stream);
3797        self.amount_sold.to_xdr_buffered(write_stream);
3798        self.asset_bought.to_xdr_buffered(write_stream);
3799        self.amount_bought.to_xdr_buffered(write_stream);
3800    }
3801
3802    fn from_xdr_buffered<T: AsRef<[u8]>>(
3803        read_stream: &mut ReadStream<T>,
3804    ) -> Result<Self, DecodeError> {
3805        Ok(ClaimOfferAtom {
3806            seller_id: AccountId::from_xdr_buffered(read_stream)?,
3807            offer_id: Int64::from_xdr_buffered(read_stream)?,
3808            asset_sold: Asset::from_xdr_buffered(read_stream)?,
3809            amount_sold: Int64::from_xdr_buffered(read_stream)?,
3810            asset_bought: Asset::from_xdr_buffered(read_stream)?,
3811            amount_bought: Int64::from_xdr_buffered(read_stream)?,
3812        })
3813    }
3814}
3815
3816/// Autogenerated definition for type CreateAccountResultCode
3817#[allow(dead_code)]
3818#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3819pub enum CreateAccountResultCode {
3820    CreateAccountSuccess = 0,
3821    CreateAccountMalformed = -1,
3822    CreateAccountUnderfunded = -2,
3823    CreateAccountLowReserve = -3,
3824    CreateAccountAlreadyExist = -4,
3825}
3826
3827impl XdrCodec for CreateAccountResultCode {
3828    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3829        let value = *self as i32;
3830        value.to_xdr_buffered(write_stream);
3831    }
3832
3833    fn from_xdr_buffered<T: AsRef<[u8]>>(
3834        read_stream: &mut ReadStream<T>,
3835    ) -> Result<Self, DecodeError> {
3836        let enum_value = i32::from_xdr_buffered(read_stream)?;
3837        match enum_value {
3838            0 => Ok(CreateAccountResultCode::CreateAccountSuccess),
3839            -1 => Ok(CreateAccountResultCode::CreateAccountMalformed),
3840            -2 => Ok(CreateAccountResultCode::CreateAccountUnderfunded),
3841            -3 => Ok(CreateAccountResultCode::CreateAccountLowReserve),
3842            -4 => Ok(CreateAccountResultCode::CreateAccountAlreadyExist),
3843            _ => Err(DecodeError::InvalidEnumDiscriminator {
3844                at_position: read_stream.get_position(),
3845            }),
3846        }
3847    }
3848}
3849
3850/// Autogenerated definition for type PaymentResultCode
3851#[allow(dead_code)]
3852#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3853pub enum PaymentResultCode {
3854    PaymentSuccess = 0,
3855    PaymentMalformed = -1,
3856    PaymentUnderfunded = -2,
3857    PaymentSrcNoTrust = -3,
3858    PaymentSrcNotAuthorized = -4,
3859    PaymentNoDestination = -5,
3860    PaymentNoTrust = -6,
3861    PaymentNotAuthorized = -7,
3862    PaymentLineFull = -8,
3863    PaymentNoIssuer = -9,
3864}
3865
3866impl XdrCodec for PaymentResultCode {
3867    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3868        let value = *self as i32;
3869        value.to_xdr_buffered(write_stream);
3870    }
3871
3872    fn from_xdr_buffered<T: AsRef<[u8]>>(
3873        read_stream: &mut ReadStream<T>,
3874    ) -> Result<Self, DecodeError> {
3875        let enum_value = i32::from_xdr_buffered(read_stream)?;
3876        match enum_value {
3877            0 => Ok(PaymentResultCode::PaymentSuccess),
3878            -1 => Ok(PaymentResultCode::PaymentMalformed),
3879            -2 => Ok(PaymentResultCode::PaymentUnderfunded),
3880            -3 => Ok(PaymentResultCode::PaymentSrcNoTrust),
3881            -4 => Ok(PaymentResultCode::PaymentSrcNotAuthorized),
3882            -5 => Ok(PaymentResultCode::PaymentNoDestination),
3883            -6 => Ok(PaymentResultCode::PaymentNoTrust),
3884            -7 => Ok(PaymentResultCode::PaymentNotAuthorized),
3885            -8 => Ok(PaymentResultCode::PaymentLineFull),
3886            -9 => Ok(PaymentResultCode::PaymentNoIssuer),
3887            _ => Err(DecodeError::InvalidEnumDiscriminator {
3888                at_position: read_stream.get_position(),
3889            }),
3890        }
3891    }
3892}
3893
3894/// Autogenerated definition for type PathPaymentStrictReceiveResultCode
3895#[allow(dead_code)]
3896#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3897pub enum PathPaymentStrictReceiveResultCode {
3898    PathPaymentStrictReceiveSuccess = 0,
3899    PathPaymentStrictReceiveMalformed = -1,
3900    PathPaymentStrictReceiveUnderfunded = -2,
3901    PathPaymentStrictReceiveSrcNoTrust = -3,
3902    PathPaymentStrictReceiveSrcNotAuthorized = -4,
3903    PathPaymentStrictReceiveNoDestination = -5,
3904    PathPaymentStrictReceiveNoTrust = -6,
3905    PathPaymentStrictReceiveNotAuthorized = -7,
3906    PathPaymentStrictReceiveLineFull = -8,
3907    PathPaymentStrictReceiveNoIssuer = -9,
3908    PathPaymentStrictReceiveTooFewOffers = -10,
3909    PathPaymentStrictReceiveOfferCrossSelf = -11,
3910    PathPaymentStrictReceiveOverSendmax = -12,
3911}
3912
3913impl XdrCodec for PathPaymentStrictReceiveResultCode {
3914    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3915        let value = *self as i32;
3916        value.to_xdr_buffered(write_stream);
3917    }
3918
3919    fn from_xdr_buffered<T: AsRef<[u8]>>(
3920        read_stream: &mut ReadStream<T>,
3921    ) -> Result<Self, DecodeError> {
3922        let enum_value = i32::from_xdr_buffered(read_stream)?;
3923        match enum_value {
3924            0 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSuccess),
3925            -1 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveMalformed),
3926            -2 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveUnderfunded),
3927            -3 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNoTrust),
3928            -4 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSrcNotAuthorized),
3929            -5 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoDestination),
3930            -6 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoTrust),
3931            -7 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNotAuthorized),
3932            -8 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveLineFull),
3933            -9 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoIssuer),
3934            -10 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveTooFewOffers),
3935            -11 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOfferCrossSelf),
3936            -12 => Ok(PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveOverSendmax),
3937            _ => Err(DecodeError::InvalidEnumDiscriminator {
3938                at_position: read_stream.get_position(),
3939            }),
3940        }
3941    }
3942}
3943
3944/// Autogenerated definition for type SimplePaymentResult
3945#[allow(dead_code)]
3946#[derive(Debug, Clone, Eq, PartialEq)]
3947pub struct SimplePaymentResult {
3948    pub destination: AccountId,
3949    pub asset: Asset,
3950    pub amount: Int64,
3951}
3952
3953impl XdrCodec for SimplePaymentResult {
3954    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3955        self.destination.to_xdr_buffered(write_stream);
3956        self.asset.to_xdr_buffered(write_stream);
3957        self.amount.to_xdr_buffered(write_stream);
3958    }
3959
3960    fn from_xdr_buffered<T: AsRef<[u8]>>(
3961        read_stream: &mut ReadStream<T>,
3962    ) -> Result<Self, DecodeError> {
3963        Ok(SimplePaymentResult {
3964            destination: AccountId::from_xdr_buffered(read_stream)?,
3965            asset: Asset::from_xdr_buffered(read_stream)?,
3966            amount: Int64::from_xdr_buffered(read_stream)?,
3967        })
3968    }
3969}
3970
3971/// Autogenerated definition for type PathPaymentStrictReceiveResultSuccess
3972#[allow(dead_code)]
3973#[derive(Debug, Clone, Eq, PartialEq)]
3974pub struct PathPaymentStrictReceiveResultSuccess {
3975    pub offers: UnlimitedVarArray<ClaimAtom>,
3976    pub last: SimplePaymentResult,
3977}
3978
3979impl XdrCodec for PathPaymentStrictReceiveResultSuccess {
3980    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
3981        self.offers.to_xdr_buffered(write_stream);
3982        self.last.to_xdr_buffered(write_stream);
3983    }
3984
3985    fn from_xdr_buffered<T: AsRef<[u8]>>(
3986        read_stream: &mut ReadStream<T>,
3987    ) -> Result<Self, DecodeError> {
3988        Ok(PathPaymentStrictReceiveResultSuccess {
3989            offers: UnlimitedVarArray::<ClaimAtom>::from_xdr_buffered(read_stream)?,
3990            last: SimplePaymentResult::from_xdr_buffered(read_stream)?,
3991        })
3992    }
3993}
3994
3995/// Autogenerated definition for type PathPaymentStrictSendResultCode
3996#[allow(dead_code)]
3997#[derive(Debug, Copy, Clone, Eq, PartialEq)]
3998pub enum PathPaymentStrictSendResultCode {
3999    PathPaymentStrictSendSuccess = 0,
4000    PathPaymentStrictSendMalformed = -1,
4001    PathPaymentStrictSendUnderfunded = -2,
4002    PathPaymentStrictSendSrcNoTrust = -3,
4003    PathPaymentStrictSendSrcNotAuthorized = -4,
4004    PathPaymentStrictSendNoDestination = -5,
4005    PathPaymentStrictSendNoTrust = -6,
4006    PathPaymentStrictSendNotAuthorized = -7,
4007    PathPaymentStrictSendLineFull = -8,
4008    PathPaymentStrictSendNoIssuer = -9,
4009    PathPaymentStrictSendTooFewOffers = -10,
4010    PathPaymentStrictSendOfferCrossSelf = -11,
4011    PathPaymentStrictSendUnderDestmin = -12,
4012}
4013
4014impl XdrCodec for PathPaymentStrictSendResultCode {
4015    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4016        let value = *self as i32;
4017        value.to_xdr_buffered(write_stream);
4018    }
4019
4020    fn from_xdr_buffered<T: AsRef<[u8]>>(
4021        read_stream: &mut ReadStream<T>,
4022    ) -> Result<Self, DecodeError> {
4023        let enum_value = i32::from_xdr_buffered(read_stream)?;
4024        match enum_value {
4025            0 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendSuccess),
4026            -1 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendMalformed),
4027            -2 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderfunded),
4028            -3 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNoTrust),
4029            -4 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendSrcNotAuthorized),
4030            -5 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNoDestination),
4031            -6 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNoTrust),
4032            -7 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNotAuthorized),
4033            -8 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendLineFull),
4034            -9 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendNoIssuer),
4035            -10 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendTooFewOffers),
4036            -11 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendOfferCrossSelf),
4037            -12 => Ok(PathPaymentStrictSendResultCode::PathPaymentStrictSendUnderDestmin),
4038            _ => Err(DecodeError::InvalidEnumDiscriminator {
4039                at_position: read_stream.get_position(),
4040            }),
4041        }
4042    }
4043}
4044
4045/// Autogenerated definition for type PathPaymentStrictSendResultSuccess
4046#[allow(dead_code)]
4047#[derive(Debug, Clone, Eq, PartialEq)]
4048pub struct PathPaymentStrictSendResultSuccess {
4049    pub offers: UnlimitedVarArray<ClaimAtom>,
4050    pub last: SimplePaymentResult,
4051}
4052
4053impl XdrCodec for PathPaymentStrictSendResultSuccess {
4054    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4055        self.offers.to_xdr_buffered(write_stream);
4056        self.last.to_xdr_buffered(write_stream);
4057    }
4058
4059    fn from_xdr_buffered<T: AsRef<[u8]>>(
4060        read_stream: &mut ReadStream<T>,
4061    ) -> Result<Self, DecodeError> {
4062        Ok(PathPaymentStrictSendResultSuccess {
4063            offers: UnlimitedVarArray::<ClaimAtom>::from_xdr_buffered(read_stream)?,
4064            last: SimplePaymentResult::from_xdr_buffered(read_stream)?,
4065        })
4066    }
4067}
4068
4069/// Autogenerated definition for type ManageSellOfferResultCode
4070#[allow(dead_code)]
4071#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4072pub enum ManageSellOfferResultCode {
4073    ManageSellOfferSuccess = 0,
4074    ManageSellOfferMalformed = -1,
4075    ManageSellOfferSellNoTrust = -2,
4076    ManageSellOfferBuyNoTrust = -3,
4077    ManageSellOfferSellNotAuthorized = -4,
4078    ManageSellOfferBuyNotAuthorized = -5,
4079    ManageSellOfferLineFull = -6,
4080    ManageSellOfferUnderfunded = -7,
4081    ManageSellOfferCrossSelf = -8,
4082    ManageSellOfferSellNoIssuer = -9,
4083    ManageSellOfferBuyNoIssuer = -10,
4084    ManageSellOfferNotFound = -11,
4085    ManageSellOfferLowReserve = -12,
4086}
4087
4088impl XdrCodec for ManageSellOfferResultCode {
4089    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4090        let value = *self as i32;
4091        value.to_xdr_buffered(write_stream);
4092    }
4093
4094    fn from_xdr_buffered<T: AsRef<[u8]>>(
4095        read_stream: &mut ReadStream<T>,
4096    ) -> Result<Self, DecodeError> {
4097        let enum_value = i32::from_xdr_buffered(read_stream)?;
4098        match enum_value {
4099            0 => Ok(ManageSellOfferResultCode::ManageSellOfferSuccess),
4100            -1 => Ok(ManageSellOfferResultCode::ManageSellOfferMalformed),
4101            -2 => Ok(ManageSellOfferResultCode::ManageSellOfferSellNoTrust),
4102            -3 => Ok(ManageSellOfferResultCode::ManageSellOfferBuyNoTrust),
4103            -4 => Ok(ManageSellOfferResultCode::ManageSellOfferSellNotAuthorized),
4104            -5 => Ok(ManageSellOfferResultCode::ManageSellOfferBuyNotAuthorized),
4105            -6 => Ok(ManageSellOfferResultCode::ManageSellOfferLineFull),
4106            -7 => Ok(ManageSellOfferResultCode::ManageSellOfferUnderfunded),
4107            -8 => Ok(ManageSellOfferResultCode::ManageSellOfferCrossSelf),
4108            -9 => Ok(ManageSellOfferResultCode::ManageSellOfferSellNoIssuer),
4109            -10 => Ok(ManageSellOfferResultCode::ManageSellOfferBuyNoIssuer),
4110            -11 => Ok(ManageSellOfferResultCode::ManageSellOfferNotFound),
4111            -12 => Ok(ManageSellOfferResultCode::ManageSellOfferLowReserve),
4112            _ => Err(DecodeError::InvalidEnumDiscriminator {
4113                at_position: read_stream.get_position(),
4114            }),
4115        }
4116    }
4117}
4118
4119/// Autogenerated definition for type ManageOfferEffect
4120#[allow(dead_code)]
4121#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4122pub enum ManageOfferEffect {
4123    ManageOfferCreated = 0,
4124    ManageOfferUpdated = 1,
4125    ManageOfferDeleted = 2,
4126}
4127
4128impl XdrCodec for ManageOfferEffect {
4129    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4130        let value = *self as i32;
4131        value.to_xdr_buffered(write_stream);
4132    }
4133
4134    fn from_xdr_buffered<T: AsRef<[u8]>>(
4135        read_stream: &mut ReadStream<T>,
4136    ) -> Result<Self, DecodeError> {
4137        let enum_value = i32::from_xdr_buffered(read_stream)?;
4138        match enum_value {
4139            0 => Ok(ManageOfferEffect::ManageOfferCreated),
4140            1 => Ok(ManageOfferEffect::ManageOfferUpdated),
4141            2 => Ok(ManageOfferEffect::ManageOfferDeleted),
4142            _ => Err(DecodeError::InvalidEnumDiscriminator {
4143                at_position: read_stream.get_position(),
4144            }),
4145        }
4146    }
4147}
4148
4149/// Autogenerated definition for type ManageOfferSuccessResult
4150#[allow(dead_code)]
4151#[derive(Debug, Clone, Eq, PartialEq)]
4152pub struct ManageOfferSuccessResult {
4153    pub offers_claimed: UnlimitedVarArray<ClaimAtom>,
4154    pub offer: ManageOfferSuccessResultOffer,
4155}
4156
4157impl XdrCodec for ManageOfferSuccessResult {
4158    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4159        self.offers_claimed.to_xdr_buffered(write_stream);
4160        self.offer.to_xdr_buffered(write_stream);
4161    }
4162
4163    fn from_xdr_buffered<T: AsRef<[u8]>>(
4164        read_stream: &mut ReadStream<T>,
4165    ) -> Result<Self, DecodeError> {
4166        Ok(ManageOfferSuccessResult {
4167            offers_claimed: UnlimitedVarArray::<ClaimAtom>::from_xdr_buffered(read_stream)?,
4168            offer: ManageOfferSuccessResultOffer::from_xdr_buffered(read_stream)?,
4169        })
4170    }
4171}
4172
4173/// Autogenerated definition for type ManageBuyOfferResultCode
4174#[allow(dead_code)]
4175#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4176pub enum ManageBuyOfferResultCode {
4177    ManageBuyOfferSuccess = 0,
4178    ManageBuyOfferMalformed = -1,
4179    ManageBuyOfferSellNoTrust = -2,
4180    ManageBuyOfferBuyNoTrust = -3,
4181    ManageBuyOfferSellNotAuthorized = -4,
4182    ManageBuyOfferBuyNotAuthorized = -5,
4183    ManageBuyOfferLineFull = -6,
4184    ManageBuyOfferUnderfunded = -7,
4185    ManageBuyOfferCrossSelf = -8,
4186    ManageBuyOfferSellNoIssuer = -9,
4187    ManageBuyOfferBuyNoIssuer = -10,
4188    ManageBuyOfferNotFound = -11,
4189    ManageBuyOfferLowReserve = -12,
4190}
4191
4192impl XdrCodec for ManageBuyOfferResultCode {
4193    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4194        let value = *self as i32;
4195        value.to_xdr_buffered(write_stream);
4196    }
4197
4198    fn from_xdr_buffered<T: AsRef<[u8]>>(
4199        read_stream: &mut ReadStream<T>,
4200    ) -> Result<Self, DecodeError> {
4201        let enum_value = i32::from_xdr_buffered(read_stream)?;
4202        match enum_value {
4203            0 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSuccess),
4204            -1 => Ok(ManageBuyOfferResultCode::ManageBuyOfferMalformed),
4205            -2 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSellNoTrust),
4206            -3 => Ok(ManageBuyOfferResultCode::ManageBuyOfferBuyNoTrust),
4207            -4 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSellNotAuthorized),
4208            -5 => Ok(ManageBuyOfferResultCode::ManageBuyOfferBuyNotAuthorized),
4209            -6 => Ok(ManageBuyOfferResultCode::ManageBuyOfferLineFull),
4210            -7 => Ok(ManageBuyOfferResultCode::ManageBuyOfferUnderfunded),
4211            -8 => Ok(ManageBuyOfferResultCode::ManageBuyOfferCrossSelf),
4212            -9 => Ok(ManageBuyOfferResultCode::ManageBuyOfferSellNoIssuer),
4213            -10 => Ok(ManageBuyOfferResultCode::ManageBuyOfferBuyNoIssuer),
4214            -11 => Ok(ManageBuyOfferResultCode::ManageBuyOfferNotFound),
4215            -12 => Ok(ManageBuyOfferResultCode::ManageBuyOfferLowReserve),
4216            _ => Err(DecodeError::InvalidEnumDiscriminator {
4217                at_position: read_stream.get_position(),
4218            }),
4219        }
4220    }
4221}
4222
4223/// Autogenerated definition for type SetOptionsResultCode
4224#[allow(dead_code)]
4225#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4226pub enum SetOptionsResultCode {
4227    SetOptionsSuccess = 0,
4228    SetOptionsLowReserve = -1,
4229    SetOptionsTooManySigners = -2,
4230    SetOptionsBadFlags = -3,
4231    SetOptionsInvalidInflation = -4,
4232    SetOptionsCantChange = -5,
4233    SetOptionsUnknownFlag = -6,
4234    SetOptionsThresholdOutOfRange = -7,
4235    SetOptionsBadSigner = -8,
4236    SetOptionsInvalidHomeDomain = -9,
4237    SetOptionsAuthRevocableRequired = -10,
4238}
4239
4240impl XdrCodec for SetOptionsResultCode {
4241    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4242        let value = *self as i32;
4243        value.to_xdr_buffered(write_stream);
4244    }
4245
4246    fn from_xdr_buffered<T: AsRef<[u8]>>(
4247        read_stream: &mut ReadStream<T>,
4248    ) -> Result<Self, DecodeError> {
4249        let enum_value = i32::from_xdr_buffered(read_stream)?;
4250        match enum_value {
4251            0 => Ok(SetOptionsResultCode::SetOptionsSuccess),
4252            -1 => Ok(SetOptionsResultCode::SetOptionsLowReserve),
4253            -2 => Ok(SetOptionsResultCode::SetOptionsTooManySigners),
4254            -3 => Ok(SetOptionsResultCode::SetOptionsBadFlags),
4255            -4 => Ok(SetOptionsResultCode::SetOptionsInvalidInflation),
4256            -5 => Ok(SetOptionsResultCode::SetOptionsCantChange),
4257            -6 => Ok(SetOptionsResultCode::SetOptionsUnknownFlag),
4258            -7 => Ok(SetOptionsResultCode::SetOptionsThresholdOutOfRange),
4259            -8 => Ok(SetOptionsResultCode::SetOptionsBadSigner),
4260            -9 => Ok(SetOptionsResultCode::SetOptionsInvalidHomeDomain),
4261            -10 => Ok(SetOptionsResultCode::SetOptionsAuthRevocableRequired),
4262            _ => Err(DecodeError::InvalidEnumDiscriminator {
4263                at_position: read_stream.get_position(),
4264            }),
4265        }
4266    }
4267}
4268
4269/// Autogenerated definition for type ChangeTrustResultCode
4270#[allow(dead_code)]
4271#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4272pub enum ChangeTrustResultCode {
4273    ChangeTrustSuccess = 0,
4274    ChangeTrustMalformed = -1,
4275    ChangeTrustNoIssuer = -2,
4276    ChangeTrustInvalidLimit = -3,
4277    ChangeTrustLowReserve = -4,
4278    ChangeTrustSelfNotAllowed = -5,
4279    ChangeTrustTrustLineMissing = -6,
4280    ChangeTrustCannotDelete = 7,
4281    ChangeTrustNotAuthMaintainLiabilities = 8,
4282}
4283
4284impl XdrCodec for ChangeTrustResultCode {
4285    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4286        let value = *self as i32;
4287        value.to_xdr_buffered(write_stream);
4288    }
4289
4290    fn from_xdr_buffered<T: AsRef<[u8]>>(
4291        read_stream: &mut ReadStream<T>,
4292    ) -> Result<Self, DecodeError> {
4293        let enum_value = i32::from_xdr_buffered(read_stream)?;
4294        match enum_value {
4295            0 => Ok(ChangeTrustResultCode::ChangeTrustSuccess),
4296            -1 => Ok(ChangeTrustResultCode::ChangeTrustMalformed),
4297            -2 => Ok(ChangeTrustResultCode::ChangeTrustNoIssuer),
4298            -3 => Ok(ChangeTrustResultCode::ChangeTrustInvalidLimit),
4299            -4 => Ok(ChangeTrustResultCode::ChangeTrustLowReserve),
4300            -5 => Ok(ChangeTrustResultCode::ChangeTrustSelfNotAllowed),
4301            -6 => Ok(ChangeTrustResultCode::ChangeTrustTrustLineMissing),
4302            7 => Ok(ChangeTrustResultCode::ChangeTrustCannotDelete),
4303            8 => Ok(ChangeTrustResultCode::ChangeTrustNotAuthMaintainLiabilities),
4304            _ => Err(DecodeError::InvalidEnumDiscriminator {
4305                at_position: read_stream.get_position(),
4306            }),
4307        }
4308    }
4309}
4310
4311/// Autogenerated definition for type AllowTrustResultCode
4312#[allow(dead_code)]
4313#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4314pub enum AllowTrustResultCode {
4315    AllowTrustSuccess = 0,
4316    AllowTrustMalformed = -1,
4317    AllowTrustNoTrustLine = -2,
4318    AllowTrustTrustNotRequired = -3,
4319    AllowTrustCantRevoke = -4,
4320    AllowTrustSelfNotAllowed = -5,
4321}
4322
4323impl XdrCodec for AllowTrustResultCode {
4324    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4325        let value = *self as i32;
4326        value.to_xdr_buffered(write_stream);
4327    }
4328
4329    fn from_xdr_buffered<T: AsRef<[u8]>>(
4330        read_stream: &mut ReadStream<T>,
4331    ) -> Result<Self, DecodeError> {
4332        let enum_value = i32::from_xdr_buffered(read_stream)?;
4333        match enum_value {
4334            0 => Ok(AllowTrustResultCode::AllowTrustSuccess),
4335            -1 => Ok(AllowTrustResultCode::AllowTrustMalformed),
4336            -2 => Ok(AllowTrustResultCode::AllowTrustNoTrustLine),
4337            -3 => Ok(AllowTrustResultCode::AllowTrustTrustNotRequired),
4338            -4 => Ok(AllowTrustResultCode::AllowTrustCantRevoke),
4339            -5 => Ok(AllowTrustResultCode::AllowTrustSelfNotAllowed),
4340            _ => Err(DecodeError::InvalidEnumDiscriminator {
4341                at_position: read_stream.get_position(),
4342            }),
4343        }
4344    }
4345}
4346
4347/// Autogenerated definition for type AccountMergeResultCode
4348#[allow(dead_code)]
4349#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4350pub enum AccountMergeResultCode {
4351    AccountMergeSuccess = 0,
4352    AccountMergeMalformed = -1,
4353    AccountMergeNoAccount = -2,
4354    AccountMergeImmutableSet = -3,
4355    AccountMergeHasSubEntries = -4,
4356    AccountMergeSeqnumTooFar = -5,
4357    AccountMergeDestFull = -6,
4358    AccountMergeIsSponsor = -7,
4359}
4360
4361impl XdrCodec for AccountMergeResultCode {
4362    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4363        let value = *self as i32;
4364        value.to_xdr_buffered(write_stream);
4365    }
4366
4367    fn from_xdr_buffered<T: AsRef<[u8]>>(
4368        read_stream: &mut ReadStream<T>,
4369    ) -> Result<Self, DecodeError> {
4370        let enum_value = i32::from_xdr_buffered(read_stream)?;
4371        match enum_value {
4372            0 => Ok(AccountMergeResultCode::AccountMergeSuccess),
4373            -1 => Ok(AccountMergeResultCode::AccountMergeMalformed),
4374            -2 => Ok(AccountMergeResultCode::AccountMergeNoAccount),
4375            -3 => Ok(AccountMergeResultCode::AccountMergeImmutableSet),
4376            -4 => Ok(AccountMergeResultCode::AccountMergeHasSubEntries),
4377            -5 => Ok(AccountMergeResultCode::AccountMergeSeqnumTooFar),
4378            -6 => Ok(AccountMergeResultCode::AccountMergeDestFull),
4379            -7 => Ok(AccountMergeResultCode::AccountMergeIsSponsor),
4380            _ => Err(DecodeError::InvalidEnumDiscriminator {
4381                at_position: read_stream.get_position(),
4382            }),
4383        }
4384    }
4385}
4386
4387/// Autogenerated definition for type InflationResultCode
4388#[allow(dead_code)]
4389#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4390pub enum InflationResultCode {
4391    InflationSuccess = 0,
4392    InflationNotTime = -1,
4393}
4394
4395impl XdrCodec for InflationResultCode {
4396    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4397        let value = *self as i32;
4398        value.to_xdr_buffered(write_stream);
4399    }
4400
4401    fn from_xdr_buffered<T: AsRef<[u8]>>(
4402        read_stream: &mut ReadStream<T>,
4403    ) -> Result<Self, DecodeError> {
4404        let enum_value = i32::from_xdr_buffered(read_stream)?;
4405        match enum_value {
4406            0 => Ok(InflationResultCode::InflationSuccess),
4407            -1 => Ok(InflationResultCode::InflationNotTime),
4408            _ => Err(DecodeError::InvalidEnumDiscriminator {
4409                at_position: read_stream.get_position(),
4410            }),
4411        }
4412    }
4413}
4414
4415/// Autogenerated definition for type InflationPayout
4416#[allow(dead_code)]
4417#[derive(Debug, Clone, Eq, PartialEq)]
4418pub struct InflationPayout {
4419    pub destination: AccountId,
4420    pub amount: Int64,
4421}
4422
4423impl XdrCodec for InflationPayout {
4424    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4425        self.destination.to_xdr_buffered(write_stream);
4426        self.amount.to_xdr_buffered(write_stream);
4427    }
4428
4429    fn from_xdr_buffered<T: AsRef<[u8]>>(
4430        read_stream: &mut ReadStream<T>,
4431    ) -> Result<Self, DecodeError> {
4432        Ok(InflationPayout {
4433            destination: AccountId::from_xdr_buffered(read_stream)?,
4434            amount: Int64::from_xdr_buffered(read_stream)?,
4435        })
4436    }
4437}
4438
4439/// Autogenerated definition for type ManageDataResultCode
4440#[allow(dead_code)]
4441#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4442pub enum ManageDataResultCode {
4443    ManageDataSuccess = 0,
4444    ManageDataNotSupportedYet = -1,
4445    ManageDataNameNotFound = -2,
4446    ManageDataLowReserve = -3,
4447    ManageDataInvalidName = -4,
4448}
4449
4450impl XdrCodec for ManageDataResultCode {
4451    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4452        let value = *self as i32;
4453        value.to_xdr_buffered(write_stream);
4454    }
4455
4456    fn from_xdr_buffered<T: AsRef<[u8]>>(
4457        read_stream: &mut ReadStream<T>,
4458    ) -> Result<Self, DecodeError> {
4459        let enum_value = i32::from_xdr_buffered(read_stream)?;
4460        match enum_value {
4461            0 => Ok(ManageDataResultCode::ManageDataSuccess),
4462            -1 => Ok(ManageDataResultCode::ManageDataNotSupportedYet),
4463            -2 => Ok(ManageDataResultCode::ManageDataNameNotFound),
4464            -3 => Ok(ManageDataResultCode::ManageDataLowReserve),
4465            -4 => Ok(ManageDataResultCode::ManageDataInvalidName),
4466            _ => Err(DecodeError::InvalidEnumDiscriminator {
4467                at_position: read_stream.get_position(),
4468            }),
4469        }
4470    }
4471}
4472
4473/// Autogenerated definition for type BumpSequenceResultCode
4474#[allow(dead_code)]
4475#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4476pub enum BumpSequenceResultCode {
4477    BumpSequenceSuccess = 0,
4478    BumpSequenceBadSeq = -1,
4479}
4480
4481impl XdrCodec for BumpSequenceResultCode {
4482    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4483        let value = *self as i32;
4484        value.to_xdr_buffered(write_stream);
4485    }
4486
4487    fn from_xdr_buffered<T: AsRef<[u8]>>(
4488        read_stream: &mut ReadStream<T>,
4489    ) -> Result<Self, DecodeError> {
4490        let enum_value = i32::from_xdr_buffered(read_stream)?;
4491        match enum_value {
4492            0 => Ok(BumpSequenceResultCode::BumpSequenceSuccess),
4493            -1 => Ok(BumpSequenceResultCode::BumpSequenceBadSeq),
4494            _ => Err(DecodeError::InvalidEnumDiscriminator {
4495                at_position: read_stream.get_position(),
4496            }),
4497        }
4498    }
4499}
4500
4501/// Autogenerated definition for type CreateClaimableBalanceResultCode
4502#[allow(dead_code)]
4503#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4504pub enum CreateClaimableBalanceResultCode {
4505    CreateClaimableBalanceSuccess = 0,
4506    CreateClaimableBalanceMalformed = -1,
4507    CreateClaimableBalanceLowReserve = -2,
4508    CreateClaimableBalanceNoTrust = -3,
4509    CreateClaimableBalanceNotAuthorized = -4,
4510    CreateClaimableBalanceUnderfunded = -5,
4511}
4512
4513impl XdrCodec for CreateClaimableBalanceResultCode {
4514    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4515        let value = *self as i32;
4516        value.to_xdr_buffered(write_stream);
4517    }
4518
4519    fn from_xdr_buffered<T: AsRef<[u8]>>(
4520        read_stream: &mut ReadStream<T>,
4521    ) -> Result<Self, DecodeError> {
4522        let enum_value = i32::from_xdr_buffered(read_stream)?;
4523        match enum_value {
4524            0 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceSuccess),
4525            -1 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceMalformed),
4526            -2 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceLowReserve),
4527            -3 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceNoTrust),
4528            -4 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceNotAuthorized),
4529            -5 => Ok(CreateClaimableBalanceResultCode::CreateClaimableBalanceUnderfunded),
4530            _ => Err(DecodeError::InvalidEnumDiscriminator {
4531                at_position: read_stream.get_position(),
4532            }),
4533        }
4534    }
4535}
4536
4537/// Autogenerated definition for type ClaimClaimableBalanceResultCode
4538#[allow(dead_code)]
4539#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4540pub enum ClaimClaimableBalanceResultCode {
4541    ClaimClaimableBalanceSuccess = 0,
4542    ClaimClaimableBalanceDoesNotExist = -1,
4543    ClaimClaimableBalanceCannotClaim = -2,
4544    ClaimClaimableBalanceLineFull = -3,
4545    ClaimClaimableBalanceNoTrust = -4,
4546    ClaimClaimableBalanceNotAuthorized = -5,
4547}
4548
4549impl XdrCodec for ClaimClaimableBalanceResultCode {
4550    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4551        let value = *self as i32;
4552        value.to_xdr_buffered(write_stream);
4553    }
4554
4555    fn from_xdr_buffered<T: AsRef<[u8]>>(
4556        read_stream: &mut ReadStream<T>,
4557    ) -> Result<Self, DecodeError> {
4558        let enum_value = i32::from_xdr_buffered(read_stream)?;
4559        match enum_value {
4560            0 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceSuccess),
4561            -1 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceDoesNotExist),
4562            -2 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceCannotClaim),
4563            -3 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceLineFull),
4564            -4 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNoTrust),
4565            -5 => Ok(ClaimClaimableBalanceResultCode::ClaimClaimableBalanceNotAuthorized),
4566            _ => Err(DecodeError::InvalidEnumDiscriminator {
4567                at_position: read_stream.get_position(),
4568            }),
4569        }
4570    }
4571}
4572
4573/// Autogenerated definition for type BeginSponsoringFutureReservesResultCode
4574#[allow(dead_code)]
4575#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4576pub enum BeginSponsoringFutureReservesResultCode {
4577    BeginSponsoringFutureReservesSuccess = 0,
4578    BeginSponsoringFutureReservesMalformed = -1,
4579    BeginSponsoringFutureReservesAlreadySponsored = -2,
4580    BeginSponsoringFutureReservesRecursive = -3,
4581}
4582
4583impl XdrCodec for BeginSponsoringFutureReservesResultCode {
4584    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4585        let value = *self as i32;
4586        value.to_xdr_buffered(write_stream);
4587    }
4588
4589    fn from_xdr_buffered<T: AsRef<[u8]>>(
4590        read_stream: &mut ReadStream<T>,
4591    ) -> Result<Self, DecodeError> {
4592        let enum_value = i32::from_xdr_buffered(read_stream)?;
4593        match enum_value {
4594            0 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesSuccess),
4595            -1 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesMalformed),
4596            -2 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesAlreadySponsored),
4597            -3 => Ok(BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesRecursive),
4598            _ => Err(DecodeError::InvalidEnumDiscriminator {at_position: read_stream.get_position()})
4599        }
4600    }
4601}
4602
4603/// Autogenerated definition for type EndSponsoringFutureReservesResultCode
4604#[allow(dead_code)]
4605#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4606pub enum EndSponsoringFutureReservesResultCode {
4607    EndSponsoringFutureReservesSuccess = 0,
4608    EndSponsoringFutureReservesNotSponsored = -1,
4609}
4610
4611impl XdrCodec for EndSponsoringFutureReservesResultCode {
4612    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4613        let value = *self as i32;
4614        value.to_xdr_buffered(write_stream);
4615    }
4616
4617    fn from_xdr_buffered<T: AsRef<[u8]>>(
4618        read_stream: &mut ReadStream<T>,
4619    ) -> Result<Self, DecodeError> {
4620        let enum_value = i32::from_xdr_buffered(read_stream)?;
4621        match enum_value {
4622            0 => Ok(EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesSuccess),
4623            -1 => {
4624                Ok(EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesNotSponsored)
4625            }
4626            _ => Err(DecodeError::InvalidEnumDiscriminator {
4627                at_position: read_stream.get_position(),
4628            }),
4629        }
4630    }
4631}
4632
4633/// Autogenerated definition for type RevokeSponsorshipResultCode
4634#[allow(dead_code)]
4635#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4636pub enum RevokeSponsorshipResultCode {
4637    RevokeSponsorshipSuccess = 0,
4638    RevokeSponsorshipDoesNotExist = -1,
4639    RevokeSponsorshipNotSponsor = -2,
4640    RevokeSponsorshipLowReserve = -3,
4641    RevokeSponsorshipOnlyTransferable = -4,
4642    RevokeSponsorshipMalformed = -5,
4643}
4644
4645impl XdrCodec for RevokeSponsorshipResultCode {
4646    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4647        let value = *self as i32;
4648        value.to_xdr_buffered(write_stream);
4649    }
4650
4651    fn from_xdr_buffered<T: AsRef<[u8]>>(
4652        read_stream: &mut ReadStream<T>,
4653    ) -> Result<Self, DecodeError> {
4654        let enum_value = i32::from_xdr_buffered(read_stream)?;
4655        match enum_value {
4656            0 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipSuccess),
4657            -1 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipDoesNotExist),
4658            -2 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipNotSponsor),
4659            -3 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipLowReserve),
4660            -4 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipOnlyTransferable),
4661            -5 => Ok(RevokeSponsorshipResultCode::RevokeSponsorshipMalformed),
4662            _ => Err(DecodeError::InvalidEnumDiscriminator {
4663                at_position: read_stream.get_position(),
4664            }),
4665        }
4666    }
4667}
4668
4669/// Autogenerated definition for type ClawbackResultCode
4670#[allow(dead_code)]
4671#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4672pub enum ClawbackResultCode {
4673    ClawbackSuccess = 0,
4674    ClawbackMalformed = -1,
4675    ClawbackNotClawbackEnabled = -2,
4676    ClawbackNoTrust = -3,
4677    ClawbackUnderfunded = -4,
4678}
4679
4680impl XdrCodec for ClawbackResultCode {
4681    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4682        let value = *self as i32;
4683        value.to_xdr_buffered(write_stream);
4684    }
4685
4686    fn from_xdr_buffered<T: AsRef<[u8]>>(
4687        read_stream: &mut ReadStream<T>,
4688    ) -> Result<Self, DecodeError> {
4689        let enum_value = i32::from_xdr_buffered(read_stream)?;
4690        match enum_value {
4691            0 => Ok(ClawbackResultCode::ClawbackSuccess),
4692            -1 => Ok(ClawbackResultCode::ClawbackMalformed),
4693            -2 => Ok(ClawbackResultCode::ClawbackNotClawbackEnabled),
4694            -3 => Ok(ClawbackResultCode::ClawbackNoTrust),
4695            -4 => Ok(ClawbackResultCode::ClawbackUnderfunded),
4696            _ => Err(DecodeError::InvalidEnumDiscriminator {
4697                at_position: read_stream.get_position(),
4698            }),
4699        }
4700    }
4701}
4702
4703/// Autogenerated definition for type ClawbackClaimableBalanceResultCode
4704#[allow(dead_code)]
4705#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4706pub enum ClawbackClaimableBalanceResultCode {
4707    ClawbackClaimableBalanceSuccess = 0,
4708    ClawbackClaimableBalanceDoesNotExist = -1,
4709    ClawbackClaimableBalanceNotIssuer = -2,
4710    ClawbackClaimableBalanceNotClawbackEnabled = -3,
4711}
4712
4713impl XdrCodec for ClawbackClaimableBalanceResultCode {
4714    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4715        let value = *self as i32;
4716        value.to_xdr_buffered(write_stream);
4717    }
4718
4719    fn from_xdr_buffered<T: AsRef<[u8]>>(
4720        read_stream: &mut ReadStream<T>,
4721    ) -> Result<Self, DecodeError> {
4722        let enum_value = i32::from_xdr_buffered(read_stream)?;
4723        match enum_value {
4724            0 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceSuccess),
4725            -1 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceDoesNotExist),
4726            -2 => Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotIssuer),
4727            -3 => {
4728                Ok(ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceNotClawbackEnabled)
4729            }
4730            _ => Err(DecodeError::InvalidEnumDiscriminator {
4731                at_position: read_stream.get_position(),
4732            }),
4733        }
4734    }
4735}
4736
4737/// Autogenerated definition for type SetTrustLineFlagsResultCode
4738#[allow(dead_code)]
4739#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4740pub enum SetTrustLineFlagsResultCode {
4741    SetTrustLineFlagsSuccess = 0,
4742    SetTrustLineFlagsMalformed = -1,
4743    SetTrustLineFlagsNoTrustLine = -2,
4744    SetTrustLineFlagsCantRevoke = -3,
4745    SetTrustLineFlagsInvalidState = -4,
4746}
4747
4748impl XdrCodec for SetTrustLineFlagsResultCode {
4749    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4750        let value = *self as i32;
4751        value.to_xdr_buffered(write_stream);
4752    }
4753
4754    fn from_xdr_buffered<T: AsRef<[u8]>>(
4755        read_stream: &mut ReadStream<T>,
4756    ) -> Result<Self, DecodeError> {
4757        let enum_value = i32::from_xdr_buffered(read_stream)?;
4758        match enum_value {
4759            0 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsSuccess),
4760            -1 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsMalformed),
4761            -2 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsNoTrustLine),
4762            -3 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsCantRevoke),
4763            -4 => Ok(SetTrustLineFlagsResultCode::SetTrustLineFlagsInvalidState),
4764            _ => Err(DecodeError::InvalidEnumDiscriminator {
4765                at_position: read_stream.get_position(),
4766            }),
4767        }
4768    }
4769}
4770
4771/// Autogenerated definition for type OperationResultCode
4772#[allow(dead_code)]
4773#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4774pub enum OperationResultCode {
4775    OpInner = 0,
4776    OpBadAuth = -1,
4777    OpNoAccount = -2,
4778    OpNotSupported = -3,
4779    OpTooManySubentries = -4,
4780    OpExceededWorkLimit = -5,
4781    OpTooManySponsoring = -6,
4782}
4783
4784impl XdrCodec for OperationResultCode {
4785    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4786        let value = *self as i32;
4787        value.to_xdr_buffered(write_stream);
4788    }
4789
4790    fn from_xdr_buffered<T: AsRef<[u8]>>(
4791        read_stream: &mut ReadStream<T>,
4792    ) -> Result<Self, DecodeError> {
4793        let enum_value = i32::from_xdr_buffered(read_stream)?;
4794        match enum_value {
4795            0 => Ok(OperationResultCode::OpInner),
4796            -1 => Ok(OperationResultCode::OpBadAuth),
4797            -2 => Ok(OperationResultCode::OpNoAccount),
4798            -3 => Ok(OperationResultCode::OpNotSupported),
4799            -4 => Ok(OperationResultCode::OpTooManySubentries),
4800            -5 => Ok(OperationResultCode::OpExceededWorkLimit),
4801            -6 => Ok(OperationResultCode::OpTooManySponsoring),
4802            _ => Err(DecodeError::InvalidEnumDiscriminator {
4803                at_position: read_stream.get_position(),
4804            }),
4805        }
4806    }
4807}
4808
4809/// Autogenerated definition for type TransactionResultCode
4810#[allow(dead_code)]
4811#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4812pub enum TransactionResultCode {
4813    TxFeeBumpInnerSuccess = 1,
4814    TxSuccess = 0,
4815    TxFailed = -1,
4816    TxTooEarly = -2,
4817    TxTooLate = -3,
4818    TxMissingOperation = -4,
4819    TxBadSeq = -5,
4820    TxBadAuth = -6,
4821    TxInsufficientBalance = -7,
4822    TxNoAccount = -8,
4823    TxInsufficientFee = -9,
4824    TxBadAuthExtra = -10,
4825    TxInternalError = -11,
4826    TxNotSupported = -12,
4827    TxFeeBumpInnerFailed = -13,
4828    TxBadSponsorship = -14,
4829}
4830
4831impl XdrCodec for TransactionResultCode {
4832    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4833        let value = *self as i32;
4834        value.to_xdr_buffered(write_stream);
4835    }
4836
4837    fn from_xdr_buffered<T: AsRef<[u8]>>(
4838        read_stream: &mut ReadStream<T>,
4839    ) -> Result<Self, DecodeError> {
4840        let enum_value = i32::from_xdr_buffered(read_stream)?;
4841        match enum_value {
4842            1 => Ok(TransactionResultCode::TxFeeBumpInnerSuccess),
4843            0 => Ok(TransactionResultCode::TxSuccess),
4844            -1 => Ok(TransactionResultCode::TxFailed),
4845            -2 => Ok(TransactionResultCode::TxTooEarly),
4846            -3 => Ok(TransactionResultCode::TxTooLate),
4847            -4 => Ok(TransactionResultCode::TxMissingOperation),
4848            -5 => Ok(TransactionResultCode::TxBadSeq),
4849            -6 => Ok(TransactionResultCode::TxBadAuth),
4850            -7 => Ok(TransactionResultCode::TxInsufficientBalance),
4851            -8 => Ok(TransactionResultCode::TxNoAccount),
4852            -9 => Ok(TransactionResultCode::TxInsufficientFee),
4853            -10 => Ok(TransactionResultCode::TxBadAuthExtra),
4854            -11 => Ok(TransactionResultCode::TxInternalError),
4855            -12 => Ok(TransactionResultCode::TxNotSupported),
4856            -13 => Ok(TransactionResultCode::TxFeeBumpInnerFailed),
4857            -14 => Ok(TransactionResultCode::TxBadSponsorship),
4858            _ => Err(DecodeError::InvalidEnumDiscriminator {
4859                at_position: read_stream.get_position(),
4860            }),
4861        }
4862    }
4863}
4864
4865/// Autogenerated definition for type InnerTransactionResult
4866#[allow(dead_code)]
4867#[derive(Debug, Clone, Eq, PartialEq)]
4868pub struct InnerTransactionResult {
4869    pub fee_charged: Int64,
4870    pub result: InnerTransactionResultResult,
4871    pub ext: InnerTransactionResultExt,
4872}
4873
4874impl XdrCodec for InnerTransactionResult {
4875    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4876        self.fee_charged.to_xdr_buffered(write_stream);
4877        self.result.to_xdr_buffered(write_stream);
4878        self.ext.to_xdr_buffered(write_stream);
4879    }
4880
4881    fn from_xdr_buffered<T: AsRef<[u8]>>(
4882        read_stream: &mut ReadStream<T>,
4883    ) -> Result<Self, DecodeError> {
4884        Ok(InnerTransactionResult {
4885            fee_charged: Int64::from_xdr_buffered(read_stream)?,
4886            result: InnerTransactionResultResult::from_xdr_buffered(read_stream)?,
4887            ext: InnerTransactionResultExt::from_xdr_buffered(read_stream)?,
4888        })
4889    }
4890}
4891
4892/// Autogenerated definition for type InnerTransactionResultPair
4893#[allow(dead_code)]
4894#[derive(Debug, Clone, Eq, PartialEq)]
4895pub struct InnerTransactionResultPair {
4896    pub transaction_hash: Hash,
4897    pub result: InnerTransactionResult,
4898}
4899
4900impl XdrCodec for InnerTransactionResultPair {
4901    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4902        self.transaction_hash.to_xdr_buffered(write_stream);
4903        self.result.to_xdr_buffered(write_stream);
4904    }
4905
4906    fn from_xdr_buffered<T: AsRef<[u8]>>(
4907        read_stream: &mut ReadStream<T>,
4908    ) -> Result<Self, DecodeError> {
4909        Ok(InnerTransactionResultPair {
4910            transaction_hash: Hash::from_xdr_buffered(read_stream)?,
4911            result: InnerTransactionResult::from_xdr_buffered(read_stream)?,
4912        })
4913    }
4914}
4915
4916/// Autogenerated definition for type TransactionResult
4917#[allow(dead_code)]
4918#[derive(Debug, Clone, Eq, PartialEq)]
4919pub struct TransactionResult {
4920    pub fee_charged: Int64,
4921    pub result: TransactionResultResult,
4922    pub ext: TransactionResultExt,
4923}
4924
4925impl XdrCodec for TransactionResult {
4926    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4927        self.fee_charged.to_xdr_buffered(write_stream);
4928        self.result.to_xdr_buffered(write_stream);
4929        self.ext.to_xdr_buffered(write_stream);
4930    }
4931
4932    fn from_xdr_buffered<T: AsRef<[u8]>>(
4933        read_stream: &mut ReadStream<T>,
4934    ) -> Result<Self, DecodeError> {
4935        Ok(TransactionResult {
4936            fee_charged: Int64::from_xdr_buffered(read_stream)?,
4937            result: TransactionResultResult::from_xdr_buffered(read_stream)?,
4938            ext: TransactionResultExt::from_xdr_buffered(read_stream)?,
4939        })
4940    }
4941}
4942
4943/// Autogenerated definition for type Hash
4944#[allow(dead_code)]
4945pub type Hash = [u8; 32];
4946
4947/// Autogenerated definition for type Uint256
4948#[allow(dead_code)]
4949pub type Uint256 = [u8; 32];
4950
4951/// Autogenerated definition for type Uint32
4952#[allow(dead_code)]
4953pub type Uint32 = u32;
4954
4955/// Autogenerated definition for type Int32
4956#[allow(dead_code)]
4957pub type Int32 = i32;
4958
4959/// Autogenerated definition for type Uint64
4960#[allow(dead_code)]
4961pub type Uint64 = u64;
4962
4963/// Autogenerated definition for type Int64
4964#[allow(dead_code)]
4965pub type Int64 = i64;
4966
4967/// Autogenerated definition for type CryptoKeyType
4968#[allow(dead_code)]
4969#[derive(Debug, Copy, Clone, Eq, PartialEq)]
4970pub enum CryptoKeyType {
4971    KeyTypeEd25519 = 0,
4972    KeyTypePreAuthTx = 1,
4973    KeyTypeHashX = 2,
4974    KeyTypeMuxedEd25519 = 256,
4975}
4976
4977impl XdrCodec for CryptoKeyType {
4978    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
4979        let value = *self as i32;
4980        value.to_xdr_buffered(write_stream);
4981    }
4982
4983    fn from_xdr_buffered<T: AsRef<[u8]>>(
4984        read_stream: &mut ReadStream<T>,
4985    ) -> Result<Self, DecodeError> {
4986        let enum_value = i32::from_xdr_buffered(read_stream)?;
4987        match enum_value {
4988            0 => Ok(CryptoKeyType::KeyTypeEd25519),
4989            1 => Ok(CryptoKeyType::KeyTypePreAuthTx),
4990            2 => Ok(CryptoKeyType::KeyTypeHashX),
4991            256 => Ok(CryptoKeyType::KeyTypeMuxedEd25519),
4992            _ => Err(DecodeError::InvalidEnumDiscriminator {
4993                at_position: read_stream.get_position(),
4994            }),
4995        }
4996    }
4997}
4998
4999/// Autogenerated definition for type PublicKeyType
5000#[allow(dead_code)]
5001#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5002pub enum PublicKeyType {
5003    PublicKeyTypeEd25519 = 0,
5004}
5005
5006impl XdrCodec for PublicKeyType {
5007    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5008        let value = *self as i32;
5009        value.to_xdr_buffered(write_stream);
5010    }
5011
5012    fn from_xdr_buffered<T: AsRef<[u8]>>(
5013        read_stream: &mut ReadStream<T>,
5014    ) -> Result<Self, DecodeError> {
5015        let enum_value = i32::from_xdr_buffered(read_stream)?;
5016        match enum_value {
5017            0 => Ok(PublicKeyType::PublicKeyTypeEd25519),
5018            _ => Err(DecodeError::InvalidEnumDiscriminator {
5019                at_position: read_stream.get_position(),
5020            }),
5021        }
5022    }
5023}
5024
5025/// Autogenerated definition for type SignerKeyType
5026#[allow(dead_code)]
5027#[derive(Debug, Copy, Clone, Eq, PartialEq)]
5028pub enum SignerKeyType {
5029    SignerKeyTypeEd25519 = 0,
5030    SignerKeyTypePreAuthTx = 1,
5031    SignerKeyTypeHashX = 2,
5032}
5033
5034impl XdrCodec for SignerKeyType {
5035    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5036        let value = *self as i32;
5037        value.to_xdr_buffered(write_stream);
5038    }
5039
5040    fn from_xdr_buffered<T: AsRef<[u8]>>(
5041        read_stream: &mut ReadStream<T>,
5042    ) -> Result<Self, DecodeError> {
5043        let enum_value = i32::from_xdr_buffered(read_stream)?;
5044        match enum_value {
5045            0 => Ok(SignerKeyType::SignerKeyTypeEd25519),
5046            1 => Ok(SignerKeyType::SignerKeyTypePreAuthTx),
5047            2 => Ok(SignerKeyType::SignerKeyTypeHashX),
5048            _ => Err(DecodeError::InvalidEnumDiscriminator {
5049                at_position: read_stream.get_position(),
5050            }),
5051        }
5052    }
5053}
5054
5055/// Autogenerated definition for type Signature
5056#[allow(dead_code)]
5057pub type Signature = LimitedVarOpaque<64>;
5058
5059/// Autogenerated definition for type SignatureHint
5060#[allow(dead_code)]
5061pub type SignatureHint = [u8; 4];
5062
5063/// Autogenerated definition for type NodeId
5064#[allow(dead_code)]
5065#[cfg(feature = "all-types")]
5066pub type NodeId = PublicKey;
5067
5068/// Autogenerated definition for type Curve25519Secret
5069#[allow(dead_code)]
5070#[cfg(feature = "all-types")]
5071#[derive(Debug, Clone, Eq, PartialEq)]
5072pub struct Curve25519Secret {
5073    pub key: [u8; 32],
5074}
5075
5076#[cfg(feature = "all-types")]
5077impl XdrCodec for Curve25519Secret {
5078    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5079        self.key.to_xdr_buffered(write_stream);
5080    }
5081
5082    fn from_xdr_buffered<T: AsRef<[u8]>>(
5083        read_stream: &mut ReadStream<T>,
5084    ) -> Result<Self, DecodeError> {
5085        Ok(Curve25519Secret {
5086            key: <[u8; 32]>::from_xdr_buffered(read_stream)?,
5087        })
5088    }
5089}
5090
5091/// Autogenerated definition for type Curve25519Public
5092#[allow(dead_code)]
5093#[cfg(feature = "all-types")]
5094#[derive(Debug, Clone, Eq, PartialEq)]
5095pub struct Curve25519Public {
5096    pub key: [u8; 32],
5097}
5098
5099#[cfg(feature = "all-types")]
5100impl XdrCodec for Curve25519Public {
5101    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5102        self.key.to_xdr_buffered(write_stream);
5103    }
5104
5105    fn from_xdr_buffered<T: AsRef<[u8]>>(
5106        read_stream: &mut ReadStream<T>,
5107    ) -> Result<Self, DecodeError> {
5108        Ok(Curve25519Public {
5109            key: <[u8; 32]>::from_xdr_buffered(read_stream)?,
5110        })
5111    }
5112}
5113
5114/// Autogenerated definition for type HmacSha256Key
5115#[allow(dead_code)]
5116#[cfg(feature = "all-types")]
5117#[derive(Debug, Clone, Eq, PartialEq)]
5118pub struct HmacSha256Key {
5119    pub key: [u8; 32],
5120}
5121
5122#[cfg(feature = "all-types")]
5123impl XdrCodec for HmacSha256Key {
5124    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5125        self.key.to_xdr_buffered(write_stream);
5126    }
5127
5128    fn from_xdr_buffered<T: AsRef<[u8]>>(
5129        read_stream: &mut ReadStream<T>,
5130    ) -> Result<Self, DecodeError> {
5131        Ok(HmacSha256Key {
5132            key: <[u8; 32]>::from_xdr_buffered(read_stream)?,
5133        })
5134    }
5135}
5136
5137/// Autogenerated definition for type HmacSha256Mac
5138#[allow(dead_code)]
5139#[cfg(feature = "all-types")]
5140#[derive(Debug, Clone, Eq, PartialEq)]
5141pub struct HmacSha256Mac {
5142    pub mac: [u8; 32],
5143}
5144
5145#[cfg(feature = "all-types")]
5146impl XdrCodec for HmacSha256Mac {
5147    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5148        self.mac.to_xdr_buffered(write_stream);
5149    }
5150
5151    fn from_xdr_buffered<T: AsRef<[u8]>>(
5152        read_stream: &mut ReadStream<T>,
5153    ) -> Result<Self, DecodeError> {
5154        Ok(HmacSha256Mac {
5155            mac: <[u8; 32]>::from_xdr_buffered(read_stream)?,
5156        })
5157    }
5158}
5159
5160/// Autogenerated definition for type ScpStatementPledges
5161#[allow(dead_code)]
5162#[cfg(feature = "all-types")]
5163#[derive(Debug, Clone, Eq, PartialEq)]
5164pub enum ScpStatementPledges {
5165    ScpStPrepare(ScpStatementPrepare),
5166    ScpStConfirm(ScpStatementConfirm),
5167    ScpStExternalize(ScpStatementExternalize),
5168    ScpStNominate(ScpNomination),
5169}
5170
5171#[cfg(feature = "all-types")]
5172impl XdrCodec for ScpStatementPledges {
5173    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5174        match self {
5175            ScpStatementPledges::ScpStPrepare(value) => {
5176                ScpStatementType::ScpStPrepare.to_xdr_buffered(write_stream);
5177                value.to_xdr_buffered(write_stream)
5178            }
5179            ScpStatementPledges::ScpStConfirm(value) => {
5180                ScpStatementType::ScpStConfirm.to_xdr_buffered(write_stream);
5181                value.to_xdr_buffered(write_stream)
5182            }
5183            ScpStatementPledges::ScpStExternalize(value) => {
5184                ScpStatementType::ScpStExternalize.to_xdr_buffered(write_stream);
5185                value.to_xdr_buffered(write_stream)
5186            }
5187            ScpStatementPledges::ScpStNominate(value) => {
5188                ScpStatementType::ScpStNominate.to_xdr_buffered(write_stream);
5189                value.to_xdr_buffered(write_stream)
5190            }
5191        }
5192    }
5193
5194    fn from_xdr_buffered<T: AsRef<[u8]>>(
5195        read_stream: &mut ReadStream<T>,
5196    ) -> Result<Self, DecodeError> {
5197        match ScpStatementType::from_xdr_buffered(read_stream)? {
5198            ScpStatementType::ScpStPrepare => Ok(ScpStatementPledges::ScpStPrepare(
5199                ScpStatementPrepare::from_xdr_buffered(read_stream)?,
5200            )),
5201            ScpStatementType::ScpStConfirm => Ok(ScpStatementPledges::ScpStConfirm(
5202                ScpStatementConfirm::from_xdr_buffered(read_stream)?,
5203            )),
5204            ScpStatementType::ScpStExternalize => Ok(ScpStatementPledges::ScpStExternalize(
5205                ScpStatementExternalize::from_xdr_buffered(read_stream)?,
5206            )),
5207            ScpStatementType::ScpStNominate => Ok(ScpStatementPledges::ScpStNominate(
5208                ScpNomination::from_xdr_buffered(read_stream)?,
5209            )),
5210        }
5211    }
5212}
5213
5214/// Autogenerated definition for type AssetCode
5215#[allow(dead_code)]
5216#[derive(Debug, Clone, Eq, PartialEq)]
5217pub enum AssetCode {
5218    AssetTypeCreditAlphanum4(AssetCode4),
5219    AssetTypeCreditAlphanum12(AssetCode12),
5220    Default(AssetType),
5221}
5222
5223impl XdrCodec for AssetCode {
5224    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5225        match self {
5226            AssetCode::AssetTypeCreditAlphanum4(value) => {
5227                AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
5228                value.to_xdr_buffered(write_stream)
5229            }
5230            AssetCode::AssetTypeCreditAlphanum12(value) => {
5231                AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
5232                value.to_xdr_buffered(write_stream)
5233            }
5234            AssetCode::Default(code) => code.to_xdr_buffered(write_stream),
5235        }
5236    }
5237
5238    fn from_xdr_buffered<T: AsRef<[u8]>>(
5239        read_stream: &mut ReadStream<T>,
5240    ) -> Result<Self, DecodeError> {
5241        match AssetType::from_xdr_buffered(read_stream)? {
5242            AssetType::AssetTypeCreditAlphanum4 => Ok(AssetCode::AssetTypeCreditAlphanum4(
5243                AssetCode4::from_xdr_buffered(read_stream)?,
5244            )),
5245            AssetType::AssetTypeCreditAlphanum12 => Ok(AssetCode::AssetTypeCreditAlphanum12(
5246                AssetCode12::from_xdr_buffered(read_stream)?,
5247            )),
5248            code => Ok(AssetCode::Default(code)),
5249        }
5250    }
5251}
5252
5253/// Autogenerated definition for type Asset
5254#[allow(dead_code)]
5255#[derive(Debug, Clone, Eq, PartialEq)]
5256pub enum Asset {
5257    AssetTypeNative,
5258    AssetTypeCreditAlphanum4(AlphaNum4),
5259    AssetTypeCreditAlphanum12(AlphaNum12),
5260    Default(AssetType),
5261}
5262
5263impl XdrCodec for Asset {
5264    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5265        match self {
5266            Asset::AssetTypeNative => AssetType::AssetTypeNative.to_xdr_buffered(write_stream),
5267            Asset::AssetTypeCreditAlphanum4(value) => {
5268                AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
5269                value.to_xdr_buffered(write_stream)
5270            }
5271            Asset::AssetTypeCreditAlphanum12(value) => {
5272                AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
5273                value.to_xdr_buffered(write_stream)
5274            }
5275            Asset::Default(code) => code.to_xdr_buffered(write_stream),
5276        }
5277    }
5278
5279    fn from_xdr_buffered<T: AsRef<[u8]>>(
5280        read_stream: &mut ReadStream<T>,
5281    ) -> Result<Self, DecodeError> {
5282        match AssetType::from_xdr_buffered(read_stream)? {
5283            AssetType::AssetTypeNative => Ok(Asset::AssetTypeNative),
5284            AssetType::AssetTypeCreditAlphanum4 => Ok(Asset::AssetTypeCreditAlphanum4(
5285                AlphaNum4::from_xdr_buffered(read_stream)?,
5286            )),
5287            AssetType::AssetTypeCreditAlphanum12 => Ok(Asset::AssetTypeCreditAlphanum12(
5288                AlphaNum12::from_xdr_buffered(read_stream)?,
5289            )),
5290            code => Ok(Asset::Default(code)),
5291        }
5292    }
5293}
5294
5295/// Autogenerated definition for type AccountEntryExtensionV2Ext
5296#[allow(dead_code)]
5297#[derive(Debug, Clone, Eq, PartialEq)]
5298pub enum AccountEntryExtensionV2Ext {
5299    V0,
5300    Default(i32),
5301}
5302
5303impl XdrCodec for AccountEntryExtensionV2Ext {
5304    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5305        match self {
5306            AccountEntryExtensionV2Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5307            AccountEntryExtensionV2Ext::Default(code) => code.to_xdr_buffered(write_stream),
5308        }
5309    }
5310
5311    fn from_xdr_buffered<T: AsRef<[u8]>>(
5312        read_stream: &mut ReadStream<T>,
5313    ) -> Result<Self, DecodeError> {
5314        match i32::from_xdr_buffered(read_stream)? {
5315            0 => Ok(AccountEntryExtensionV2Ext::V0),
5316            code => Ok(AccountEntryExtensionV2Ext::Default(code)),
5317        }
5318    }
5319}
5320
5321/// Autogenerated definition for type AccountEntryExtensionV1Ext
5322#[allow(dead_code)]
5323#[derive(Debug, Clone, Eq, PartialEq)]
5324pub enum AccountEntryExtensionV1Ext {
5325    V0,
5326    V2(AccountEntryExtensionV2),
5327    Default(i32),
5328}
5329
5330impl XdrCodec for AccountEntryExtensionV1Ext {
5331    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5332        match self {
5333            AccountEntryExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5334            AccountEntryExtensionV1Ext::V2(value) => {
5335                (2 as i32).to_xdr_buffered(write_stream);
5336                value.to_xdr_buffered(write_stream)
5337            }
5338            AccountEntryExtensionV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
5339        }
5340    }
5341
5342    fn from_xdr_buffered<T: AsRef<[u8]>>(
5343        read_stream: &mut ReadStream<T>,
5344    ) -> Result<Self, DecodeError> {
5345        match i32::from_xdr_buffered(read_stream)? {
5346            0 => Ok(AccountEntryExtensionV1Ext::V0),
5347            2 => Ok(AccountEntryExtensionV1Ext::V2(
5348                AccountEntryExtensionV2::from_xdr_buffered(read_stream)?,
5349            )),
5350            code => Ok(AccountEntryExtensionV1Ext::Default(code)),
5351        }
5352    }
5353}
5354
5355/// Autogenerated definition for type AccountEntryExt
5356#[allow(dead_code)]
5357#[derive(Debug, Clone, Eq, PartialEq)]
5358pub enum AccountEntryExt {
5359    V0,
5360    V1(AccountEntryExtensionV1),
5361    Default(i32),
5362}
5363
5364impl XdrCodec for AccountEntryExt {
5365    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5366        match self {
5367            AccountEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5368            AccountEntryExt::V1(value) => {
5369                (1 as i32).to_xdr_buffered(write_stream);
5370                value.to_xdr_buffered(write_stream)
5371            }
5372            AccountEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5373        }
5374    }
5375
5376    fn from_xdr_buffered<T: AsRef<[u8]>>(
5377        read_stream: &mut ReadStream<T>,
5378    ) -> Result<Self, DecodeError> {
5379        match i32::from_xdr_buffered(read_stream)? {
5380            0 => Ok(AccountEntryExt::V0),
5381            1 => Ok(AccountEntryExt::V1(
5382                AccountEntryExtensionV1::from_xdr_buffered(read_stream)?,
5383            )),
5384            code => Ok(AccountEntryExt::Default(code)),
5385        }
5386    }
5387}
5388
5389/// Autogenerated definition for type TrustLineAsset
5390#[allow(dead_code)]
5391#[derive(Debug, Clone, Eq, PartialEq)]
5392pub enum TrustLineAsset {
5393    AssetTypeNative,
5394    AssetTypeCreditAlphanum4(AlphaNum4),
5395    AssetTypeCreditAlphanum12(AlphaNum12),
5396    AssetTypePoolShare(PoolId),
5397}
5398
5399impl XdrCodec for TrustLineAsset {
5400    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5401        match self {
5402            TrustLineAsset::AssetTypeNative => {
5403                AssetType::AssetTypeNative.to_xdr_buffered(write_stream)
5404            }
5405            TrustLineAsset::AssetTypeCreditAlphanum4(value) => {
5406                AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
5407                value.to_xdr_buffered(write_stream)
5408            }
5409            TrustLineAsset::AssetTypeCreditAlphanum12(value) => {
5410                AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
5411                value.to_xdr_buffered(write_stream)
5412            }
5413            TrustLineAsset::AssetTypePoolShare(value) => {
5414                AssetType::AssetTypePoolShare.to_xdr_buffered(write_stream);
5415                value.to_xdr_buffered(write_stream)
5416            }
5417        }
5418    }
5419
5420    fn from_xdr_buffered<T: AsRef<[u8]>>(
5421        read_stream: &mut ReadStream<T>,
5422    ) -> Result<Self, DecodeError> {
5423        match AssetType::from_xdr_buffered(read_stream)? {
5424            AssetType::AssetTypeNative => Ok(TrustLineAsset::AssetTypeNative),
5425            AssetType::AssetTypeCreditAlphanum4 => Ok(TrustLineAsset::AssetTypeCreditAlphanum4(
5426                AlphaNum4::from_xdr_buffered(read_stream)?,
5427            )),
5428            AssetType::AssetTypeCreditAlphanum12 => Ok(TrustLineAsset::AssetTypeCreditAlphanum12(
5429                AlphaNum12::from_xdr_buffered(read_stream)?,
5430            )),
5431            AssetType::AssetTypePoolShare => Ok(TrustLineAsset::AssetTypePoolShare(
5432                PoolId::from_xdr_buffered(read_stream)?,
5433            )),
5434        }
5435    }
5436}
5437
5438/// Autogenerated definition for type TrustLineEntryV1Ext
5439#[allow(dead_code)]
5440#[derive(Debug, Clone, Eq, PartialEq)]
5441pub enum TrustLineEntryV1Ext {
5442    V0,
5443    Default(i32),
5444}
5445
5446impl XdrCodec for TrustLineEntryV1Ext {
5447    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5448        match self {
5449            TrustLineEntryV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5450            TrustLineEntryV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
5451        }
5452    }
5453
5454    fn from_xdr_buffered<T: AsRef<[u8]>>(
5455        read_stream: &mut ReadStream<T>,
5456    ) -> Result<Self, DecodeError> {
5457        match i32::from_xdr_buffered(read_stream)? {
5458            0 => Ok(TrustLineEntryV1Ext::V0),
5459            code => Ok(TrustLineEntryV1Ext::Default(code)),
5460        }
5461    }
5462}
5463
5464/// Autogenerated definition for type TrustLineEntryExt
5465#[allow(dead_code)]
5466#[derive(Debug, Clone, Eq, PartialEq)]
5467pub enum TrustLineEntryExt {
5468    V0,
5469    V1(TrustLineEntryV1),
5470    Default(i32),
5471}
5472
5473impl XdrCodec for TrustLineEntryExt {
5474    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5475        match self {
5476            TrustLineEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5477            TrustLineEntryExt::V1(value) => {
5478                (1 as i32).to_xdr_buffered(write_stream);
5479                value.to_xdr_buffered(write_stream)
5480            }
5481            TrustLineEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5482        }
5483    }
5484
5485    fn from_xdr_buffered<T: AsRef<[u8]>>(
5486        read_stream: &mut ReadStream<T>,
5487    ) -> Result<Self, DecodeError> {
5488        match i32::from_xdr_buffered(read_stream)? {
5489            0 => Ok(TrustLineEntryExt::V0),
5490            1 => Ok(TrustLineEntryExt::V1(TrustLineEntryV1::from_xdr_buffered(
5491                read_stream,
5492            )?)),
5493            code => Ok(TrustLineEntryExt::Default(code)),
5494        }
5495    }
5496}
5497
5498/// Autogenerated definition for type OfferEntryExt
5499#[allow(dead_code)]
5500#[derive(Debug, Clone, Eq, PartialEq)]
5501pub enum OfferEntryExt {
5502    V0,
5503    Default(i32),
5504}
5505
5506impl XdrCodec for OfferEntryExt {
5507    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5508        match self {
5509            OfferEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5510            OfferEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5511        }
5512    }
5513
5514    fn from_xdr_buffered<T: AsRef<[u8]>>(
5515        read_stream: &mut ReadStream<T>,
5516    ) -> Result<Self, DecodeError> {
5517        match i32::from_xdr_buffered(read_stream)? {
5518            0 => Ok(OfferEntryExt::V0),
5519            code => Ok(OfferEntryExt::Default(code)),
5520        }
5521    }
5522}
5523
5524/// Autogenerated definition for type DataEntryExt
5525#[allow(dead_code)]
5526#[derive(Debug, Clone, Eq, PartialEq)]
5527pub enum DataEntryExt {
5528    V0,
5529    Default(i32),
5530}
5531
5532impl XdrCodec for DataEntryExt {
5533    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5534        match self {
5535            DataEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5536            DataEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5537        }
5538    }
5539
5540    fn from_xdr_buffered<T: AsRef<[u8]>>(
5541        read_stream: &mut ReadStream<T>,
5542    ) -> Result<Self, DecodeError> {
5543        match i32::from_xdr_buffered(read_stream)? {
5544            0 => Ok(DataEntryExt::V0),
5545            code => Ok(DataEntryExt::Default(code)),
5546        }
5547    }
5548}
5549
5550/// Autogenerated definition for type ClaimPredicate
5551#[allow(dead_code)]
5552#[derive(Debug, Clone, Eq, PartialEq)]
5553pub enum ClaimPredicate {
5554    ClaimPredicateUnconditional,
5555    ClaimPredicateAnd(LimitedVarArray<ClaimPredicate, 2>),
5556    ClaimPredicateOr(LimitedVarArray<ClaimPredicate, 2>),
5557    ClaimPredicateNot(Option<Box<ClaimPredicate>>),
5558    ClaimPredicateBeforeAbsoluteTime(Int64),
5559    ClaimPredicateBeforeRelativeTime(Int64),
5560}
5561
5562impl XdrCodec for ClaimPredicate {
5563    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5564        match self {
5565            ClaimPredicate::ClaimPredicateUnconditional => {
5566                ClaimPredicateType::ClaimPredicateUnconditional.to_xdr_buffered(write_stream)
5567            }
5568            ClaimPredicate::ClaimPredicateAnd(value) => {
5569                ClaimPredicateType::ClaimPredicateAnd.to_xdr_buffered(write_stream);
5570                value.to_xdr_buffered(write_stream)
5571            }
5572            ClaimPredicate::ClaimPredicateOr(value) => {
5573                ClaimPredicateType::ClaimPredicateOr.to_xdr_buffered(write_stream);
5574                value.to_xdr_buffered(write_stream)
5575            }
5576            ClaimPredicate::ClaimPredicateNot(value) => {
5577                ClaimPredicateType::ClaimPredicateNot.to_xdr_buffered(write_stream);
5578                value.to_xdr_buffered(write_stream)
5579            }
5580            ClaimPredicate::ClaimPredicateBeforeAbsoluteTime(value) => {
5581                ClaimPredicateType::ClaimPredicateBeforeAbsoluteTime.to_xdr_buffered(write_stream);
5582                value.to_xdr_buffered(write_stream)
5583            }
5584            ClaimPredicate::ClaimPredicateBeforeRelativeTime(value) => {
5585                ClaimPredicateType::ClaimPredicateBeforeRelativeTime.to_xdr_buffered(write_stream);
5586                value.to_xdr_buffered(write_stream)
5587            }
5588        }
5589    }
5590
5591    fn from_xdr_buffered<T: AsRef<[u8]>>(
5592        read_stream: &mut ReadStream<T>,
5593    ) -> Result<Self, DecodeError> {
5594        match ClaimPredicateType::from_xdr_buffered(read_stream)? {
5595            ClaimPredicateType::ClaimPredicateUnconditional => {
5596                Ok(ClaimPredicate::ClaimPredicateUnconditional)
5597            }
5598            ClaimPredicateType::ClaimPredicateAnd => {
5599                Ok(ClaimPredicate::ClaimPredicateAnd(LimitedVarArray::<
5600                    ClaimPredicate,
5601                    2,
5602                >::from_xdr_buffered(
5603                    read_stream
5604                )?))
5605            }
5606            ClaimPredicateType::ClaimPredicateOr => {
5607                Ok(ClaimPredicate::ClaimPredicateOr(LimitedVarArray::<
5608                    ClaimPredicate,
5609                    2,
5610                >::from_xdr_buffered(
5611                    read_stream
5612                )?))
5613            }
5614            ClaimPredicateType::ClaimPredicateNot => {
5615                Ok(ClaimPredicate::ClaimPredicateNot(Option::<
5616                    Box<ClaimPredicate>,
5617                >::from_xdr_buffered(
5618                    read_stream
5619                )?))
5620            }
5621            ClaimPredicateType::ClaimPredicateBeforeAbsoluteTime => {
5622                Ok(ClaimPredicate::ClaimPredicateBeforeAbsoluteTime(
5623                    Int64::from_xdr_buffered(read_stream)?,
5624                ))
5625            }
5626            ClaimPredicateType::ClaimPredicateBeforeRelativeTime => {
5627                Ok(ClaimPredicate::ClaimPredicateBeforeRelativeTime(
5628                    Int64::from_xdr_buffered(read_stream)?,
5629                ))
5630            }
5631        }
5632    }
5633}
5634
5635/// Autogenerated definition for type Claimant
5636#[allow(dead_code)]
5637#[derive(Debug, Clone, Eq, PartialEq)]
5638pub enum Claimant {
5639    ClaimantTypeV0(ClaimantV0),
5640}
5641
5642impl XdrCodec for Claimant {
5643    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5644        match self {
5645            Claimant::ClaimantTypeV0(value) => {
5646                ClaimantType::ClaimantTypeV0.to_xdr_buffered(write_stream);
5647                value.to_xdr_buffered(write_stream)
5648            }
5649        }
5650    }
5651
5652    fn from_xdr_buffered<T: AsRef<[u8]>>(
5653        read_stream: &mut ReadStream<T>,
5654    ) -> Result<Self, DecodeError> {
5655        match ClaimantType::from_xdr_buffered(read_stream)? {
5656            ClaimantType::ClaimantTypeV0 => Ok(Claimant::ClaimantTypeV0(
5657                ClaimantV0::from_xdr_buffered(read_stream)?,
5658            )),
5659        }
5660    }
5661}
5662
5663/// Autogenerated definition for type ClaimableBalanceId
5664#[allow(dead_code)]
5665#[derive(Debug, Clone, Eq, PartialEq)]
5666pub enum ClaimableBalanceId {
5667    ClaimableBalanceIdTypeV0(Hash),
5668}
5669
5670impl XdrCodec for ClaimableBalanceId {
5671    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5672        match self {
5673            ClaimableBalanceId::ClaimableBalanceIdTypeV0(value) => {
5674                ClaimableBalanceIdType::ClaimableBalanceIdTypeV0.to_xdr_buffered(write_stream);
5675                value.to_xdr_buffered(write_stream)
5676            }
5677        }
5678    }
5679
5680    fn from_xdr_buffered<T: AsRef<[u8]>>(
5681        read_stream: &mut ReadStream<T>,
5682    ) -> Result<Self, DecodeError> {
5683        match ClaimableBalanceIdType::from_xdr_buffered(read_stream)? {
5684            ClaimableBalanceIdType::ClaimableBalanceIdTypeV0 => Ok(
5685                ClaimableBalanceId::ClaimableBalanceIdTypeV0(Hash::from_xdr_buffered(read_stream)?),
5686            ),
5687        }
5688    }
5689}
5690
5691/// Autogenerated definition for type ClaimableBalanceEntryExtensionV1Ext
5692#[allow(dead_code)]
5693#[derive(Debug, Clone, Eq, PartialEq)]
5694pub enum ClaimableBalanceEntryExtensionV1Ext {
5695    V0,
5696    Default(i32),
5697}
5698
5699impl XdrCodec for ClaimableBalanceEntryExtensionV1Ext {
5700    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5701        match self {
5702            ClaimableBalanceEntryExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5703            ClaimableBalanceEntryExtensionV1Ext::Default(code) => {
5704                code.to_xdr_buffered(write_stream)
5705            }
5706        }
5707    }
5708
5709    fn from_xdr_buffered<T: AsRef<[u8]>>(
5710        read_stream: &mut ReadStream<T>,
5711    ) -> Result<Self, DecodeError> {
5712        match i32::from_xdr_buffered(read_stream)? {
5713            0 => Ok(ClaimableBalanceEntryExtensionV1Ext::V0),
5714            code => Ok(ClaimableBalanceEntryExtensionV1Ext::Default(code)),
5715        }
5716    }
5717}
5718
5719/// Autogenerated definition for type ClaimableBalanceEntryExt
5720#[allow(dead_code)]
5721#[derive(Debug, Clone, Eq, PartialEq)]
5722pub enum ClaimableBalanceEntryExt {
5723    V0,
5724    V1(ClaimableBalanceEntryExtensionV1),
5725    Default(i32),
5726}
5727
5728impl XdrCodec for ClaimableBalanceEntryExt {
5729    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5730        match self {
5731            ClaimableBalanceEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5732            ClaimableBalanceEntryExt::V1(value) => {
5733                (1 as i32).to_xdr_buffered(write_stream);
5734                value.to_xdr_buffered(write_stream)
5735            }
5736            ClaimableBalanceEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5737        }
5738    }
5739
5740    fn from_xdr_buffered<T: AsRef<[u8]>>(
5741        read_stream: &mut ReadStream<T>,
5742    ) -> Result<Self, DecodeError> {
5743        match i32::from_xdr_buffered(read_stream)? {
5744            0 => Ok(ClaimableBalanceEntryExt::V0),
5745            1 => Ok(ClaimableBalanceEntryExt::V1(
5746                ClaimableBalanceEntryExtensionV1::from_xdr_buffered(read_stream)?,
5747            )),
5748            code => Ok(ClaimableBalanceEntryExt::Default(code)),
5749        }
5750    }
5751}
5752
5753/// Autogenerated definition for type LiquidityPoolEntryBody
5754#[allow(dead_code)]
5755#[derive(Debug, Clone, Eq, PartialEq)]
5756pub enum LiquidityPoolEntryBody {
5757    LiquidityPoolConstantProduct(LiquidityPoolEntryConstantProduct),
5758}
5759
5760impl XdrCodec for LiquidityPoolEntryBody {
5761    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5762        match self {
5763            LiquidityPoolEntryBody::LiquidityPoolConstantProduct(value) => {
5764                LiquidityPoolType::LiquidityPoolConstantProduct.to_xdr_buffered(write_stream);
5765                value.to_xdr_buffered(write_stream)
5766            }
5767        }
5768    }
5769
5770    fn from_xdr_buffered<T: AsRef<[u8]>>(
5771        read_stream: &mut ReadStream<T>,
5772    ) -> Result<Self, DecodeError> {
5773        match LiquidityPoolType::from_xdr_buffered(read_stream)? {
5774            LiquidityPoolType::LiquidityPoolConstantProduct => {
5775                Ok(LiquidityPoolEntryBody::LiquidityPoolConstantProduct(
5776                    LiquidityPoolEntryConstantProduct::from_xdr_buffered(read_stream)?,
5777                ))
5778            }
5779        }
5780    }
5781}
5782
5783/// Autogenerated definition for type LedgerEntryExtensionV1Ext
5784#[allow(dead_code)]
5785#[derive(Debug, Clone, Eq, PartialEq)]
5786pub enum LedgerEntryExtensionV1Ext {
5787    V0,
5788    Default(i32),
5789}
5790
5791impl XdrCodec for LedgerEntryExtensionV1Ext {
5792    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5793        match self {
5794            LedgerEntryExtensionV1Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
5795            LedgerEntryExtensionV1Ext::Default(code) => code.to_xdr_buffered(write_stream),
5796        }
5797    }
5798
5799    fn from_xdr_buffered<T: AsRef<[u8]>>(
5800        read_stream: &mut ReadStream<T>,
5801    ) -> Result<Self, DecodeError> {
5802        match i32::from_xdr_buffered(read_stream)? {
5803            0 => Ok(LedgerEntryExtensionV1Ext::V0),
5804            code => Ok(LedgerEntryExtensionV1Ext::Default(code)),
5805        }
5806    }
5807}
5808
5809/// Autogenerated definition for type LedgerEntryData
5810#[allow(dead_code)]
5811#[derive(Debug, Clone, Eq, PartialEq)]
5812pub enum LedgerEntryData {
5813    Account(AccountEntry),
5814    Trustline(TrustLineEntry),
5815    Offer(OfferEntry),
5816    Data(DataEntry),
5817    ClaimableBalance(ClaimableBalanceEntry),
5818    LiquidityPool(LiquidityPoolEntry),
5819}
5820
5821impl XdrCodec for LedgerEntryData {
5822    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5823        match self {
5824            LedgerEntryData::Account(value) => {
5825                LedgerEntryType::Account.to_xdr_buffered(write_stream);
5826                value.to_xdr_buffered(write_stream)
5827            }
5828            LedgerEntryData::Trustline(value) => {
5829                LedgerEntryType::Trustline.to_xdr_buffered(write_stream);
5830                value.to_xdr_buffered(write_stream)
5831            }
5832            LedgerEntryData::Offer(value) => {
5833                LedgerEntryType::Offer.to_xdr_buffered(write_stream);
5834                value.to_xdr_buffered(write_stream)
5835            }
5836            LedgerEntryData::Data(value) => {
5837                LedgerEntryType::Data.to_xdr_buffered(write_stream);
5838                value.to_xdr_buffered(write_stream)
5839            }
5840            LedgerEntryData::ClaimableBalance(value) => {
5841                LedgerEntryType::ClaimableBalance.to_xdr_buffered(write_stream);
5842                value.to_xdr_buffered(write_stream)
5843            }
5844            LedgerEntryData::LiquidityPool(value) => {
5845                LedgerEntryType::LiquidityPool.to_xdr_buffered(write_stream);
5846                value.to_xdr_buffered(write_stream)
5847            }
5848        }
5849    }
5850
5851    fn from_xdr_buffered<T: AsRef<[u8]>>(
5852        read_stream: &mut ReadStream<T>,
5853    ) -> Result<Self, DecodeError> {
5854        match LedgerEntryType::from_xdr_buffered(read_stream)? {
5855            LedgerEntryType::Account => Ok(LedgerEntryData::Account(
5856                AccountEntry::from_xdr_buffered(read_stream)?,
5857            )),
5858            LedgerEntryType::Trustline => Ok(LedgerEntryData::Trustline(
5859                TrustLineEntry::from_xdr_buffered(read_stream)?,
5860            )),
5861            LedgerEntryType::Offer => Ok(LedgerEntryData::Offer(OfferEntry::from_xdr_buffered(
5862                read_stream,
5863            )?)),
5864            LedgerEntryType::Data => Ok(LedgerEntryData::Data(DataEntry::from_xdr_buffered(
5865                read_stream,
5866            )?)),
5867            LedgerEntryType::ClaimableBalance => Ok(LedgerEntryData::ClaimableBalance(
5868                ClaimableBalanceEntry::from_xdr_buffered(read_stream)?,
5869            )),
5870            LedgerEntryType::LiquidityPool => Ok(LedgerEntryData::LiquidityPool(
5871                LiquidityPoolEntry::from_xdr_buffered(read_stream)?,
5872            )),
5873        }
5874    }
5875}
5876
5877/// Autogenerated definition for type LedgerEntryExt
5878#[allow(dead_code)]
5879#[derive(Debug, Clone, Eq, PartialEq)]
5880pub enum LedgerEntryExt {
5881    V0,
5882    V1(LedgerEntryExtensionV1),
5883    Default(i32),
5884}
5885
5886impl XdrCodec for LedgerEntryExt {
5887    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5888        match self {
5889            LedgerEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
5890            LedgerEntryExt::V1(value) => {
5891                (1 as i32).to_xdr_buffered(write_stream);
5892                value.to_xdr_buffered(write_stream)
5893            }
5894            LedgerEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
5895        }
5896    }
5897
5898    fn from_xdr_buffered<T: AsRef<[u8]>>(
5899        read_stream: &mut ReadStream<T>,
5900    ) -> Result<Self, DecodeError> {
5901        match i32::from_xdr_buffered(read_stream)? {
5902            0 => Ok(LedgerEntryExt::V0),
5903            1 => Ok(LedgerEntryExt::V1(
5904                LedgerEntryExtensionV1::from_xdr_buffered(read_stream)?,
5905            )),
5906            code => Ok(LedgerEntryExt::Default(code)),
5907        }
5908    }
5909}
5910
5911/// Autogenerated definition for type LedgerKey
5912#[allow(dead_code)]
5913#[derive(Debug, Clone, Eq, PartialEq)]
5914pub enum LedgerKey {
5915    Account(LedgerKeyAccount),
5916    Trustline(LedgerKeyTrustLine),
5917    Offer(LedgerKeyOffer),
5918    Data(LedgerKeyData),
5919    ClaimableBalance(LedgerKeyClaimableBalance),
5920    LiquidityPool(LedgerKeyLiquidityPool),
5921}
5922
5923impl XdrCodec for LedgerKey {
5924    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5925        match self {
5926            LedgerKey::Account(value) => {
5927                LedgerEntryType::Account.to_xdr_buffered(write_stream);
5928                value.to_xdr_buffered(write_stream)
5929            }
5930            LedgerKey::Trustline(value) => {
5931                LedgerEntryType::Trustline.to_xdr_buffered(write_stream);
5932                value.to_xdr_buffered(write_stream)
5933            }
5934            LedgerKey::Offer(value) => {
5935                LedgerEntryType::Offer.to_xdr_buffered(write_stream);
5936                value.to_xdr_buffered(write_stream)
5937            }
5938            LedgerKey::Data(value) => {
5939                LedgerEntryType::Data.to_xdr_buffered(write_stream);
5940                value.to_xdr_buffered(write_stream)
5941            }
5942            LedgerKey::ClaimableBalance(value) => {
5943                LedgerEntryType::ClaimableBalance.to_xdr_buffered(write_stream);
5944                value.to_xdr_buffered(write_stream)
5945            }
5946            LedgerKey::LiquidityPool(value) => {
5947                LedgerEntryType::LiquidityPool.to_xdr_buffered(write_stream);
5948                value.to_xdr_buffered(write_stream)
5949            }
5950        }
5951    }
5952
5953    fn from_xdr_buffered<T: AsRef<[u8]>>(
5954        read_stream: &mut ReadStream<T>,
5955    ) -> Result<Self, DecodeError> {
5956        match LedgerEntryType::from_xdr_buffered(read_stream)? {
5957            LedgerEntryType::Account => Ok(LedgerKey::Account(
5958                LedgerKeyAccount::from_xdr_buffered(read_stream)?,
5959            )),
5960            LedgerEntryType::Trustline => Ok(LedgerKey::Trustline(
5961                LedgerKeyTrustLine::from_xdr_buffered(read_stream)?,
5962            )),
5963            LedgerEntryType::Offer => Ok(LedgerKey::Offer(LedgerKeyOffer::from_xdr_buffered(
5964                read_stream,
5965            )?)),
5966            LedgerEntryType::Data => Ok(LedgerKey::Data(LedgerKeyData::from_xdr_buffered(
5967                read_stream,
5968            )?)),
5969            LedgerEntryType::ClaimableBalance => Ok(LedgerKey::ClaimableBalance(
5970                LedgerKeyClaimableBalance::from_xdr_buffered(read_stream)?,
5971            )),
5972            LedgerEntryType::LiquidityPool => Ok(LedgerKey::LiquidityPool(
5973                LedgerKeyLiquidityPool::from_xdr_buffered(read_stream)?,
5974            )),
5975        }
5976    }
5977}
5978
5979/// Autogenerated definition for type StellarValueExt
5980#[allow(dead_code)]
5981#[cfg(feature = "all-types")]
5982#[derive(Debug, Clone, Eq, PartialEq)]
5983pub enum StellarValueExt {
5984    StellarValueBasic,
5985    StellarValueSigned(LedgerCloseValueSignature),
5986}
5987
5988#[cfg(feature = "all-types")]
5989impl XdrCodec for StellarValueExt {
5990    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
5991        match self {
5992            StellarValueExt::StellarValueBasic => {
5993                StellarValueType::StellarValueBasic.to_xdr_buffered(write_stream)
5994            }
5995            StellarValueExt::StellarValueSigned(value) => {
5996                StellarValueType::StellarValueSigned.to_xdr_buffered(write_stream);
5997                value.to_xdr_buffered(write_stream)
5998            }
5999        }
6000    }
6001
6002    fn from_xdr_buffered<T: AsRef<[u8]>>(
6003        read_stream: &mut ReadStream<T>,
6004    ) -> Result<Self, DecodeError> {
6005        match StellarValueType::from_xdr_buffered(read_stream)? {
6006            StellarValueType::StellarValueBasic => Ok(StellarValueExt::StellarValueBasic),
6007            StellarValueType::StellarValueSigned => Ok(StellarValueExt::StellarValueSigned(
6008                LedgerCloseValueSignature::from_xdr_buffered(read_stream)?,
6009            )),
6010        }
6011    }
6012}
6013
6014/// Autogenerated definition for type LedgerHeaderExt
6015#[allow(dead_code)]
6016#[cfg(feature = "all-types")]
6017#[derive(Debug, Clone, Eq, PartialEq)]
6018pub enum LedgerHeaderExt {
6019    V0,
6020    Default(i32),
6021}
6022
6023#[cfg(feature = "all-types")]
6024impl XdrCodec for LedgerHeaderExt {
6025    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6026        match self {
6027            LedgerHeaderExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6028            LedgerHeaderExt::Default(code) => code.to_xdr_buffered(write_stream),
6029        }
6030    }
6031
6032    fn from_xdr_buffered<T: AsRef<[u8]>>(
6033        read_stream: &mut ReadStream<T>,
6034    ) -> Result<Self, DecodeError> {
6035        match i32::from_xdr_buffered(read_stream)? {
6036            0 => Ok(LedgerHeaderExt::V0),
6037            code => Ok(LedgerHeaderExt::Default(code)),
6038        }
6039    }
6040}
6041
6042/// Autogenerated definition for type LedgerUpgrade
6043#[allow(dead_code)]
6044#[cfg(feature = "all-types")]
6045#[derive(Debug, Clone, Eq, PartialEq)]
6046pub enum LedgerUpgrade {
6047    LedgerUpgradeVersion(Uint32),
6048    LedgerUpgradeBaseFee(Uint32),
6049    LedgerUpgradeMaxTxSetSize(Uint32),
6050    LedgerUpgradeBaseReserve(Uint32),
6051}
6052
6053#[cfg(feature = "all-types")]
6054impl XdrCodec for LedgerUpgrade {
6055    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6056        match self {
6057            LedgerUpgrade::LedgerUpgradeVersion(value) => {
6058                LedgerUpgradeType::LedgerUpgradeVersion.to_xdr_buffered(write_stream);
6059                value.to_xdr_buffered(write_stream)
6060            }
6061            LedgerUpgrade::LedgerUpgradeBaseFee(value) => {
6062                LedgerUpgradeType::LedgerUpgradeBaseFee.to_xdr_buffered(write_stream);
6063                value.to_xdr_buffered(write_stream)
6064            }
6065            LedgerUpgrade::LedgerUpgradeMaxTxSetSize(value) => {
6066                LedgerUpgradeType::LedgerUpgradeMaxTxSetSize.to_xdr_buffered(write_stream);
6067                value.to_xdr_buffered(write_stream)
6068            }
6069            LedgerUpgrade::LedgerUpgradeBaseReserve(value) => {
6070                LedgerUpgradeType::LedgerUpgradeBaseReserve.to_xdr_buffered(write_stream);
6071                value.to_xdr_buffered(write_stream)
6072            }
6073        }
6074    }
6075
6076    fn from_xdr_buffered<T: AsRef<[u8]>>(
6077        read_stream: &mut ReadStream<T>,
6078    ) -> Result<Self, DecodeError> {
6079        match LedgerUpgradeType::from_xdr_buffered(read_stream)? {
6080            LedgerUpgradeType::LedgerUpgradeVersion => Ok(LedgerUpgrade::LedgerUpgradeVersion(
6081                Uint32::from_xdr_buffered(read_stream)?,
6082            )),
6083            LedgerUpgradeType::LedgerUpgradeBaseFee => Ok(LedgerUpgrade::LedgerUpgradeBaseFee(
6084                Uint32::from_xdr_buffered(read_stream)?,
6085            )),
6086            LedgerUpgradeType::LedgerUpgradeMaxTxSetSize => Ok(
6087                LedgerUpgrade::LedgerUpgradeMaxTxSetSize(Uint32::from_xdr_buffered(read_stream)?),
6088            ),
6089            LedgerUpgradeType::LedgerUpgradeBaseReserve => Ok(
6090                LedgerUpgrade::LedgerUpgradeBaseReserve(Uint32::from_xdr_buffered(read_stream)?),
6091            ),
6092        }
6093    }
6094}
6095
6096/// Autogenerated definition for type BucketMetadataExt
6097#[allow(dead_code)]
6098#[cfg(feature = "all-types")]
6099#[derive(Debug, Clone, Eq, PartialEq)]
6100pub enum BucketMetadataExt {
6101    V0,
6102    Default(i32),
6103}
6104
6105#[cfg(feature = "all-types")]
6106impl XdrCodec for BucketMetadataExt {
6107    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6108        match self {
6109            BucketMetadataExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6110            BucketMetadataExt::Default(code) => code.to_xdr_buffered(write_stream),
6111        }
6112    }
6113
6114    fn from_xdr_buffered<T: AsRef<[u8]>>(
6115        read_stream: &mut ReadStream<T>,
6116    ) -> Result<Self, DecodeError> {
6117        match i32::from_xdr_buffered(read_stream)? {
6118            0 => Ok(BucketMetadataExt::V0),
6119            code => Ok(BucketMetadataExt::Default(code)),
6120        }
6121    }
6122}
6123
6124/// Autogenerated definition for type BucketEntry
6125#[allow(dead_code)]
6126#[cfg(feature = "all-types")]
6127#[derive(Debug, Clone, Eq, PartialEq)]
6128pub enum BucketEntry {
6129    Liveentry(LedgerEntry),
6130    Initentry(LedgerEntry),
6131    Deadentry(LedgerKey),
6132    Metaentry(BucketMetadata),
6133}
6134
6135#[cfg(feature = "all-types")]
6136impl XdrCodec for BucketEntry {
6137    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6138        match self {
6139            BucketEntry::Liveentry(value) => {
6140                BucketEntryType::Liveentry.to_xdr_buffered(write_stream);
6141                value.to_xdr_buffered(write_stream)
6142            }
6143            BucketEntry::Initentry(value) => {
6144                BucketEntryType::Initentry.to_xdr_buffered(write_stream);
6145                value.to_xdr_buffered(write_stream)
6146            }
6147            BucketEntry::Deadentry(value) => {
6148                BucketEntryType::Deadentry.to_xdr_buffered(write_stream);
6149                value.to_xdr_buffered(write_stream)
6150            }
6151            BucketEntry::Metaentry(value) => {
6152                BucketEntryType::Metaentry.to_xdr_buffered(write_stream);
6153                value.to_xdr_buffered(write_stream)
6154            }
6155        }
6156    }
6157
6158    fn from_xdr_buffered<T: AsRef<[u8]>>(
6159        read_stream: &mut ReadStream<T>,
6160    ) -> Result<Self, DecodeError> {
6161        match BucketEntryType::from_xdr_buffered(read_stream)? {
6162            BucketEntryType::Liveentry => Ok(BucketEntry::Liveentry(
6163                LedgerEntry::from_xdr_buffered(read_stream)?,
6164            )),
6165            BucketEntryType::Initentry => Ok(BucketEntry::Initentry(
6166                LedgerEntry::from_xdr_buffered(read_stream)?,
6167            )),
6168            BucketEntryType::Deadentry => Ok(BucketEntry::Deadentry(LedgerKey::from_xdr_buffered(
6169                read_stream,
6170            )?)),
6171            BucketEntryType::Metaentry => Ok(BucketEntry::Metaentry(
6172                BucketMetadata::from_xdr_buffered(read_stream)?,
6173            )),
6174        }
6175    }
6176}
6177
6178/// Autogenerated definition for type TransactionHistoryEntryExt
6179#[allow(dead_code)]
6180#[cfg(feature = "all-types")]
6181#[derive(Debug, Clone, Eq, PartialEq)]
6182pub enum TransactionHistoryEntryExt {
6183    V0,
6184    Default(i32),
6185}
6186
6187#[cfg(feature = "all-types")]
6188impl XdrCodec for TransactionHistoryEntryExt {
6189    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6190        match self {
6191            TransactionHistoryEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6192            TransactionHistoryEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
6193        }
6194    }
6195
6196    fn from_xdr_buffered<T: AsRef<[u8]>>(
6197        read_stream: &mut ReadStream<T>,
6198    ) -> Result<Self, DecodeError> {
6199        match i32::from_xdr_buffered(read_stream)? {
6200            0 => Ok(TransactionHistoryEntryExt::V0),
6201            code => Ok(TransactionHistoryEntryExt::Default(code)),
6202        }
6203    }
6204}
6205
6206/// Autogenerated definition for type TransactionHistoryResultEntryExt
6207#[allow(dead_code)]
6208#[cfg(feature = "all-types")]
6209#[derive(Debug, Clone, Eq, PartialEq)]
6210pub enum TransactionHistoryResultEntryExt {
6211    V0,
6212    Default(i32),
6213}
6214
6215#[cfg(feature = "all-types")]
6216impl XdrCodec for TransactionHistoryResultEntryExt {
6217    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6218        match self {
6219            TransactionHistoryResultEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6220            TransactionHistoryResultEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
6221        }
6222    }
6223
6224    fn from_xdr_buffered<T: AsRef<[u8]>>(
6225        read_stream: &mut ReadStream<T>,
6226    ) -> Result<Self, DecodeError> {
6227        match i32::from_xdr_buffered(read_stream)? {
6228            0 => Ok(TransactionHistoryResultEntryExt::V0),
6229            code => Ok(TransactionHistoryResultEntryExt::Default(code)),
6230        }
6231    }
6232}
6233
6234/// Autogenerated definition for type LedgerHeaderHistoryEntryExt
6235#[allow(dead_code)]
6236#[cfg(feature = "all-types")]
6237#[derive(Debug, Clone, Eq, PartialEq)]
6238pub enum LedgerHeaderHistoryEntryExt {
6239    V0,
6240    Default(i32),
6241}
6242
6243#[cfg(feature = "all-types")]
6244impl XdrCodec for LedgerHeaderHistoryEntryExt {
6245    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6246        match self {
6247            LedgerHeaderHistoryEntryExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
6248            LedgerHeaderHistoryEntryExt::Default(code) => code.to_xdr_buffered(write_stream),
6249        }
6250    }
6251
6252    fn from_xdr_buffered<T: AsRef<[u8]>>(
6253        read_stream: &mut ReadStream<T>,
6254    ) -> Result<Self, DecodeError> {
6255        match i32::from_xdr_buffered(read_stream)? {
6256            0 => Ok(LedgerHeaderHistoryEntryExt::V0),
6257            code => Ok(LedgerHeaderHistoryEntryExt::Default(code)),
6258        }
6259    }
6260}
6261
6262/// Autogenerated definition for type ScpHistoryEntry
6263#[allow(dead_code)]
6264#[cfg(feature = "all-types")]
6265#[derive(Debug, Clone, Eq, PartialEq)]
6266pub enum ScpHistoryEntry {
6267    V0(ScpHistoryEntryV0),
6268    Default(i32),
6269}
6270
6271#[cfg(feature = "all-types")]
6272impl XdrCodec for ScpHistoryEntry {
6273    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6274        match self {
6275            ScpHistoryEntry::V0(value) => {
6276                (0 as i32).to_xdr_buffered(write_stream);
6277                value.to_xdr_buffered(write_stream)
6278            }
6279            ScpHistoryEntry::Default(code) => code.to_xdr_buffered(write_stream),
6280        }
6281    }
6282
6283    fn from_xdr_buffered<T: AsRef<[u8]>>(
6284        read_stream: &mut ReadStream<T>,
6285    ) -> Result<Self, DecodeError> {
6286        match i32::from_xdr_buffered(read_stream)? {
6287            0 => Ok(ScpHistoryEntry::V0(ScpHistoryEntryV0::from_xdr_buffered(
6288                read_stream,
6289            )?)),
6290            code => Ok(ScpHistoryEntry::Default(code)),
6291        }
6292    }
6293}
6294
6295/// Autogenerated definition for type LedgerEntryChange
6296#[allow(dead_code)]
6297#[derive(Debug, Clone, Eq, PartialEq)]
6298pub enum LedgerEntryChange {
6299    LedgerEntryCreated(LedgerEntry),
6300    LedgerEntryUpdated(LedgerEntry),
6301    LedgerEntryRemoved(LedgerKey),
6302    LedgerEntryState(LedgerEntry),
6303}
6304
6305impl XdrCodec for LedgerEntryChange {
6306    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6307        match self {
6308            LedgerEntryChange::LedgerEntryCreated(value) => {
6309                LedgerEntryChangeType::LedgerEntryCreated.to_xdr_buffered(write_stream);
6310                value.to_xdr_buffered(write_stream)
6311            }
6312            LedgerEntryChange::LedgerEntryUpdated(value) => {
6313                LedgerEntryChangeType::LedgerEntryUpdated.to_xdr_buffered(write_stream);
6314                value.to_xdr_buffered(write_stream)
6315            }
6316            LedgerEntryChange::LedgerEntryRemoved(value) => {
6317                LedgerEntryChangeType::LedgerEntryRemoved.to_xdr_buffered(write_stream);
6318                value.to_xdr_buffered(write_stream)
6319            }
6320            LedgerEntryChange::LedgerEntryState(value) => {
6321                LedgerEntryChangeType::LedgerEntryState.to_xdr_buffered(write_stream);
6322                value.to_xdr_buffered(write_stream)
6323            }
6324        }
6325    }
6326
6327    fn from_xdr_buffered<T: AsRef<[u8]>>(
6328        read_stream: &mut ReadStream<T>,
6329    ) -> Result<Self, DecodeError> {
6330        match LedgerEntryChangeType::from_xdr_buffered(read_stream)? {
6331            LedgerEntryChangeType::LedgerEntryCreated => Ok(LedgerEntryChange::LedgerEntryCreated(
6332                LedgerEntry::from_xdr_buffered(read_stream)?,
6333            )),
6334            LedgerEntryChangeType::LedgerEntryUpdated => Ok(LedgerEntryChange::LedgerEntryUpdated(
6335                LedgerEntry::from_xdr_buffered(read_stream)?,
6336            )),
6337            LedgerEntryChangeType::LedgerEntryRemoved => Ok(LedgerEntryChange::LedgerEntryRemoved(
6338                LedgerKey::from_xdr_buffered(read_stream)?,
6339            )),
6340            LedgerEntryChangeType::LedgerEntryState => Ok(LedgerEntryChange::LedgerEntryState(
6341                LedgerEntry::from_xdr_buffered(read_stream)?,
6342            )),
6343        }
6344    }
6345}
6346
6347/// Autogenerated definition for type TransactionMeta
6348#[allow(dead_code)]
6349#[derive(Debug, Clone, Eq, PartialEq)]
6350pub enum TransactionMeta {
6351    V0(UnlimitedVarArray<OperationMeta>),
6352    V1(TransactionMetaV1),
6353    V2(TransactionMetaV2),
6354    Default(i32),
6355}
6356
6357impl XdrCodec for TransactionMeta {
6358    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6359        match self {
6360            TransactionMeta::V0(value) => {
6361                (0 as i32).to_xdr_buffered(write_stream);
6362                value.to_xdr_buffered(write_stream)
6363            }
6364            TransactionMeta::V1(value) => {
6365                (1 as i32).to_xdr_buffered(write_stream);
6366                value.to_xdr_buffered(write_stream)
6367            }
6368            TransactionMeta::V2(value) => {
6369                (2 as i32).to_xdr_buffered(write_stream);
6370                value.to_xdr_buffered(write_stream)
6371            }
6372            TransactionMeta::Default(code) => code.to_xdr_buffered(write_stream),
6373        }
6374    }
6375
6376    fn from_xdr_buffered<T: AsRef<[u8]>>(
6377        read_stream: &mut ReadStream<T>,
6378    ) -> Result<Self, DecodeError> {
6379        match i32::from_xdr_buffered(read_stream)? {
6380            0 => Ok(TransactionMeta::V0(
6381                UnlimitedVarArray::<OperationMeta>::from_xdr_buffered(read_stream)?,
6382            )),
6383            1 => Ok(TransactionMeta::V1(TransactionMetaV1::from_xdr_buffered(
6384                read_stream,
6385            )?)),
6386            2 => Ok(TransactionMeta::V2(TransactionMetaV2::from_xdr_buffered(
6387                read_stream,
6388            )?)),
6389            code => Ok(TransactionMeta::Default(code)),
6390        }
6391    }
6392}
6393
6394/// Autogenerated definition for type LedgerCloseMeta
6395#[allow(dead_code)]
6396#[cfg(feature = "all-types")]
6397#[derive(Debug, Clone, Eq, PartialEq)]
6398pub enum LedgerCloseMeta {
6399    V0(LedgerCloseMetaV0),
6400    Default(i32),
6401}
6402
6403#[cfg(feature = "all-types")]
6404impl XdrCodec for LedgerCloseMeta {
6405    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6406        match self {
6407            LedgerCloseMeta::V0(value) => {
6408                (0 as i32).to_xdr_buffered(write_stream);
6409                value.to_xdr_buffered(write_stream)
6410            }
6411            LedgerCloseMeta::Default(code) => code.to_xdr_buffered(write_stream),
6412        }
6413    }
6414
6415    fn from_xdr_buffered<T: AsRef<[u8]>>(
6416        read_stream: &mut ReadStream<T>,
6417    ) -> Result<Self, DecodeError> {
6418        match i32::from_xdr_buffered(read_stream)? {
6419            0 => Ok(LedgerCloseMeta::V0(LedgerCloseMetaV0::from_xdr_buffered(
6420                read_stream,
6421            )?)),
6422            code => Ok(LedgerCloseMeta::Default(code)),
6423        }
6424    }
6425}
6426
6427/// Autogenerated definition for type PeerAddressIp
6428#[allow(dead_code)]
6429#[cfg(feature = "all-types")]
6430#[derive(Debug, Clone, Eq, PartialEq)]
6431pub enum PeerAddressIp {
6432    IPv4([u8; 4]),
6433    IPv6([u8; 16]),
6434}
6435
6436#[cfg(feature = "all-types")]
6437impl XdrCodec for PeerAddressIp {
6438    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6439        match self {
6440            PeerAddressIp::IPv4(value) => {
6441                IpAddrType::IPv4.to_xdr_buffered(write_stream);
6442                value.to_xdr_buffered(write_stream)
6443            }
6444            PeerAddressIp::IPv6(value) => {
6445                IpAddrType::IPv6.to_xdr_buffered(write_stream);
6446                value.to_xdr_buffered(write_stream)
6447            }
6448        }
6449    }
6450
6451    fn from_xdr_buffered<T: AsRef<[u8]>>(
6452        read_stream: &mut ReadStream<T>,
6453    ) -> Result<Self, DecodeError> {
6454        match IpAddrType::from_xdr_buffered(read_stream)? {
6455            IpAddrType::IPv4 => Ok(PeerAddressIp::IPv4(<[u8; 4]>::from_xdr_buffered(
6456                read_stream,
6457            )?)),
6458            IpAddrType::IPv6 => Ok(PeerAddressIp::IPv6(<[u8; 16]>::from_xdr_buffered(
6459                read_stream,
6460            )?)),
6461        }
6462    }
6463}
6464
6465/// Autogenerated definition for type SurveyResponseBody
6466#[allow(dead_code)]
6467#[cfg(feature = "all-types")]
6468#[derive(Debug, Clone, Eq, PartialEq)]
6469pub enum SurveyResponseBody {
6470    SurveyTopology(TopologyResponseBody),
6471}
6472
6473#[cfg(feature = "all-types")]
6474impl XdrCodec for SurveyResponseBody {
6475    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6476        match self {
6477            SurveyResponseBody::SurveyTopology(value) => {
6478                SurveyMessageCommandType::SurveyTopology.to_xdr_buffered(write_stream);
6479                value.to_xdr_buffered(write_stream)
6480            }
6481        }
6482    }
6483
6484    fn from_xdr_buffered<T: AsRef<[u8]>>(
6485        read_stream: &mut ReadStream<T>,
6486    ) -> Result<Self, DecodeError> {
6487        match SurveyMessageCommandType::from_xdr_buffered(read_stream)? {
6488            SurveyMessageCommandType::SurveyTopology => Ok(SurveyResponseBody::SurveyTopology(
6489                TopologyResponseBody::from_xdr_buffered(read_stream)?,
6490            )),
6491        }
6492    }
6493}
6494
6495/// Autogenerated definition for type StellarMessage
6496#[allow(dead_code)]
6497#[cfg(feature = "all-types")]
6498#[derive(Debug, Clone, Eq, PartialEq)]
6499pub enum StellarMessage {
6500    ErrorMsg(Error),
6501    Hello(Hello),
6502    Auth(Auth),
6503    DontHave(DontHave),
6504    GetPeers,
6505    Peers(LimitedVarArray<PeerAddress, 100>),
6506    GetTxSet(Uint256),
6507    TxSet(TransactionSet),
6508    Transaction(TransactionEnvelope),
6509    SurveyRequest(SignedSurveyRequestMessage),
6510    SurveyResponse(SignedSurveyResponseMessage),
6511    GetScpQuorumset(Uint256),
6512    ScpQuorumset(ScpQuorumSet),
6513    ScpMessage(ScpEnvelope),
6514    GetScpState(Uint32),
6515}
6516
6517#[cfg(feature = "all-types")]
6518impl XdrCodec for StellarMessage {
6519    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6520        match self {
6521            StellarMessage::ErrorMsg(value) => {
6522                MessageType::ErrorMsg.to_xdr_buffered(write_stream);
6523                value.to_xdr_buffered(write_stream)
6524            }
6525            StellarMessage::Hello(value) => {
6526                MessageType::Hello.to_xdr_buffered(write_stream);
6527                value.to_xdr_buffered(write_stream)
6528            }
6529            StellarMessage::Auth(value) => {
6530                MessageType::Auth.to_xdr_buffered(write_stream);
6531                value.to_xdr_buffered(write_stream)
6532            }
6533            StellarMessage::DontHave(value) => {
6534                MessageType::DontHave.to_xdr_buffered(write_stream);
6535                value.to_xdr_buffered(write_stream)
6536            }
6537            StellarMessage::GetPeers => MessageType::GetPeers.to_xdr_buffered(write_stream),
6538            StellarMessage::Peers(value) => {
6539                MessageType::Peers.to_xdr_buffered(write_stream);
6540                value.to_xdr_buffered(write_stream)
6541            }
6542            StellarMessage::GetTxSet(value) => {
6543                MessageType::GetTxSet.to_xdr_buffered(write_stream);
6544                value.to_xdr_buffered(write_stream)
6545            }
6546            StellarMessage::TxSet(value) => {
6547                MessageType::TxSet.to_xdr_buffered(write_stream);
6548                value.to_xdr_buffered(write_stream)
6549            }
6550            StellarMessage::Transaction(value) => {
6551                MessageType::Transaction.to_xdr_buffered(write_stream);
6552                value.to_xdr_buffered(write_stream)
6553            }
6554            StellarMessage::SurveyRequest(value) => {
6555                MessageType::SurveyRequest.to_xdr_buffered(write_stream);
6556                value.to_xdr_buffered(write_stream)
6557            }
6558            StellarMessage::SurveyResponse(value) => {
6559                MessageType::SurveyResponse.to_xdr_buffered(write_stream);
6560                value.to_xdr_buffered(write_stream)
6561            }
6562            StellarMessage::GetScpQuorumset(value) => {
6563                MessageType::GetScpQuorumset.to_xdr_buffered(write_stream);
6564                value.to_xdr_buffered(write_stream)
6565            }
6566            StellarMessage::ScpQuorumset(value) => {
6567                MessageType::ScpQuorumset.to_xdr_buffered(write_stream);
6568                value.to_xdr_buffered(write_stream)
6569            }
6570            StellarMessage::ScpMessage(value) => {
6571                MessageType::ScpMessage.to_xdr_buffered(write_stream);
6572                value.to_xdr_buffered(write_stream)
6573            }
6574            StellarMessage::GetScpState(value) => {
6575                MessageType::GetScpState.to_xdr_buffered(write_stream);
6576                value.to_xdr_buffered(write_stream)
6577            }
6578        }
6579    }
6580
6581    fn from_xdr_buffered<T: AsRef<[u8]>>(
6582        read_stream: &mut ReadStream<T>,
6583    ) -> Result<Self, DecodeError> {
6584        match MessageType::from_xdr_buffered(read_stream)? {
6585            MessageType::ErrorMsg => Ok(StellarMessage::ErrorMsg(Error::from_xdr_buffered(
6586                read_stream,
6587            )?)),
6588            MessageType::Hello => Ok(StellarMessage::Hello(Hello::from_xdr_buffered(
6589                read_stream,
6590            )?)),
6591            MessageType::Auth => Ok(StellarMessage::Auth(Auth::from_xdr_buffered(read_stream)?)),
6592            MessageType::DontHave => Ok(StellarMessage::DontHave(DontHave::from_xdr_buffered(
6593                read_stream,
6594            )?)),
6595            MessageType::GetPeers => Ok(StellarMessage::GetPeers),
6596            MessageType::Peers => Ok(StellarMessage::Peers(
6597                LimitedVarArray::<PeerAddress, 100>::from_xdr_buffered(read_stream)?,
6598            )),
6599            MessageType::GetTxSet => Ok(StellarMessage::GetTxSet(Uint256::from_xdr_buffered(
6600                read_stream,
6601            )?)),
6602            MessageType::TxSet => Ok(StellarMessage::TxSet(TransactionSet::from_xdr_buffered(
6603                read_stream,
6604            )?)),
6605            MessageType::Transaction => Ok(StellarMessage::Transaction(
6606                TransactionEnvelope::from_xdr_buffered(read_stream)?,
6607            )),
6608            MessageType::SurveyRequest => Ok(StellarMessage::SurveyRequest(
6609                SignedSurveyRequestMessage::from_xdr_buffered(read_stream)?,
6610            )),
6611            MessageType::SurveyResponse => Ok(StellarMessage::SurveyResponse(
6612                SignedSurveyResponseMessage::from_xdr_buffered(read_stream)?,
6613            )),
6614            MessageType::GetScpQuorumset => Ok(StellarMessage::GetScpQuorumset(
6615                Uint256::from_xdr_buffered(read_stream)?,
6616            )),
6617            MessageType::ScpQuorumset => Ok(StellarMessage::ScpQuorumset(
6618                ScpQuorumSet::from_xdr_buffered(read_stream)?,
6619            )),
6620            MessageType::ScpMessage => Ok(StellarMessage::ScpMessage(
6621                ScpEnvelope::from_xdr_buffered(read_stream)?,
6622            )),
6623            MessageType::GetScpState => Ok(StellarMessage::GetScpState(Uint32::from_xdr_buffered(
6624                read_stream,
6625            )?)),
6626        }
6627    }
6628}
6629
6630/// Autogenerated definition for type AuthenticatedMessage
6631#[allow(dead_code)]
6632#[cfg(feature = "all-types")]
6633#[derive(Debug, Clone, Eq, PartialEq)]
6634pub enum AuthenticatedMessage {
6635    V0(AuthenticatedMessageV0),
6636    Default(Uint32),
6637}
6638
6639#[cfg(feature = "all-types")]
6640impl XdrCodec for AuthenticatedMessage {
6641    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6642        match self {
6643            AuthenticatedMessage::V0(value) => {
6644                (0 as Uint32).to_xdr_buffered(write_stream);
6645                value.to_xdr_buffered(write_stream)
6646            }
6647            AuthenticatedMessage::Default(code) => code.to_xdr_buffered(write_stream),
6648        }
6649    }
6650
6651    fn from_xdr_buffered<T: AsRef<[u8]>>(
6652        read_stream: &mut ReadStream<T>,
6653    ) -> Result<Self, DecodeError> {
6654        match Uint32::from_xdr_buffered(read_stream)? {
6655            0 => Ok(AuthenticatedMessage::V0(
6656                AuthenticatedMessageV0::from_xdr_buffered(read_stream)?,
6657            )),
6658            code => Ok(AuthenticatedMessage::Default(code)),
6659        }
6660    }
6661}
6662
6663/// Autogenerated definition for type LiquidityPoolParameters
6664#[allow(dead_code)]
6665#[derive(Debug, Clone, Eq, PartialEq)]
6666pub enum LiquidityPoolParameters {
6667    LiquidityPoolConstantProduct(LiquidityPoolConstantProductParameters),
6668}
6669
6670impl XdrCodec for LiquidityPoolParameters {
6671    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6672        match self {
6673            LiquidityPoolParameters::LiquidityPoolConstantProduct(value) => {
6674                LiquidityPoolType::LiquidityPoolConstantProduct.to_xdr_buffered(write_stream);
6675                value.to_xdr_buffered(write_stream)
6676            }
6677        }
6678    }
6679
6680    fn from_xdr_buffered<T: AsRef<[u8]>>(
6681        read_stream: &mut ReadStream<T>,
6682    ) -> Result<Self, DecodeError> {
6683        match LiquidityPoolType::from_xdr_buffered(read_stream)? {
6684            LiquidityPoolType::LiquidityPoolConstantProduct => {
6685                Ok(LiquidityPoolParameters::LiquidityPoolConstantProduct(
6686                    LiquidityPoolConstantProductParameters::from_xdr_buffered(read_stream)?,
6687                ))
6688            }
6689        }
6690    }
6691}
6692
6693/// Autogenerated definition for type MuxedAccount
6694#[allow(dead_code)]
6695#[derive(Debug, Clone, Eq, PartialEq)]
6696pub enum MuxedAccount {
6697    KeyTypeEd25519(Uint256),
6698    KeyTypeMuxedEd25519(MuxedAccountMed25519),
6699    Default(CryptoKeyType),
6700}
6701
6702impl XdrCodec for MuxedAccount {
6703    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6704        match self {
6705            MuxedAccount::KeyTypeEd25519(value) => {
6706                CryptoKeyType::KeyTypeEd25519.to_xdr_buffered(write_stream);
6707                value.to_xdr_buffered(write_stream)
6708            }
6709            MuxedAccount::KeyTypeMuxedEd25519(value) => {
6710                CryptoKeyType::KeyTypeMuxedEd25519.to_xdr_buffered(write_stream);
6711                value.to_xdr_buffered(write_stream)
6712            }
6713            MuxedAccount::Default(code) => code.to_xdr_buffered(write_stream),
6714        }
6715    }
6716
6717    fn from_xdr_buffered<T: AsRef<[u8]>>(
6718        read_stream: &mut ReadStream<T>,
6719    ) -> Result<Self, DecodeError> {
6720        match CryptoKeyType::from_xdr_buffered(read_stream)? {
6721            CryptoKeyType::KeyTypeEd25519 => Ok(MuxedAccount::KeyTypeEd25519(
6722                Uint256::from_xdr_buffered(read_stream)?,
6723            )),
6724            CryptoKeyType::KeyTypeMuxedEd25519 => Ok(MuxedAccount::KeyTypeMuxedEd25519(
6725                MuxedAccountMed25519::from_xdr_buffered(read_stream)?,
6726            )),
6727            code => Ok(MuxedAccount::Default(code)),
6728        }
6729    }
6730}
6731
6732/// Autogenerated definition for type ChangeTrustAsset
6733#[allow(dead_code)]
6734#[derive(Debug, Clone, Eq, PartialEq)]
6735pub enum ChangeTrustAsset {
6736    AssetTypeNative,
6737    AssetTypeCreditAlphanum4(AlphaNum4),
6738    AssetTypeCreditAlphanum12(AlphaNum12),
6739    AssetTypePoolShare(LiquidityPoolParameters),
6740}
6741
6742impl XdrCodec for ChangeTrustAsset {
6743    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6744        match self {
6745            ChangeTrustAsset::AssetTypeNative => {
6746                AssetType::AssetTypeNative.to_xdr_buffered(write_stream)
6747            }
6748            ChangeTrustAsset::AssetTypeCreditAlphanum4(value) => {
6749                AssetType::AssetTypeCreditAlphanum4.to_xdr_buffered(write_stream);
6750                value.to_xdr_buffered(write_stream)
6751            }
6752            ChangeTrustAsset::AssetTypeCreditAlphanum12(value) => {
6753                AssetType::AssetTypeCreditAlphanum12.to_xdr_buffered(write_stream);
6754                value.to_xdr_buffered(write_stream)
6755            }
6756            ChangeTrustAsset::AssetTypePoolShare(value) => {
6757                AssetType::AssetTypePoolShare.to_xdr_buffered(write_stream);
6758                value.to_xdr_buffered(write_stream)
6759            }
6760        }
6761    }
6762
6763    fn from_xdr_buffered<T: AsRef<[u8]>>(
6764        read_stream: &mut ReadStream<T>,
6765    ) -> Result<Self, DecodeError> {
6766        match AssetType::from_xdr_buffered(read_stream)? {
6767            AssetType::AssetTypeNative => Ok(ChangeTrustAsset::AssetTypeNative),
6768            AssetType::AssetTypeCreditAlphanum4 => Ok(ChangeTrustAsset::AssetTypeCreditAlphanum4(
6769                AlphaNum4::from_xdr_buffered(read_stream)?,
6770            )),
6771            AssetType::AssetTypeCreditAlphanum12 => {
6772                Ok(ChangeTrustAsset::AssetTypeCreditAlphanum12(
6773                    AlphaNum12::from_xdr_buffered(read_stream)?,
6774                ))
6775            }
6776            AssetType::AssetTypePoolShare => Ok(ChangeTrustAsset::AssetTypePoolShare(
6777                LiquidityPoolParameters::from_xdr_buffered(read_stream)?,
6778            )),
6779        }
6780    }
6781}
6782
6783/// Autogenerated definition for type RevokeSponsorshipOp
6784#[allow(dead_code)]
6785#[derive(Debug, Clone, Eq, PartialEq)]
6786pub enum RevokeSponsorshipOp {
6787    RevokeSponsorshipLedgerEntry(LedgerKey),
6788    RevokeSponsorshipSigner(RevokeSponsorshipOpSigner),
6789}
6790
6791impl XdrCodec for RevokeSponsorshipOp {
6792    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6793        match self {
6794            RevokeSponsorshipOp::RevokeSponsorshipLedgerEntry(value) => {
6795                RevokeSponsorshipType::RevokeSponsorshipLedgerEntry.to_xdr_buffered(write_stream);
6796                value.to_xdr_buffered(write_stream)
6797            }
6798            RevokeSponsorshipOp::RevokeSponsorshipSigner(value) => {
6799                RevokeSponsorshipType::RevokeSponsorshipSigner.to_xdr_buffered(write_stream);
6800                value.to_xdr_buffered(write_stream)
6801            }
6802        }
6803    }
6804
6805    fn from_xdr_buffered<T: AsRef<[u8]>>(
6806        read_stream: &mut ReadStream<T>,
6807    ) -> Result<Self, DecodeError> {
6808        match RevokeSponsorshipType::from_xdr_buffered(read_stream)? {
6809            RevokeSponsorshipType::RevokeSponsorshipLedgerEntry => {
6810                Ok(RevokeSponsorshipOp::RevokeSponsorshipLedgerEntry(
6811                    LedgerKey::from_xdr_buffered(read_stream)?,
6812                ))
6813            }
6814            RevokeSponsorshipType::RevokeSponsorshipSigner => {
6815                Ok(RevokeSponsorshipOp::RevokeSponsorshipSigner(
6816                    RevokeSponsorshipOpSigner::from_xdr_buffered(read_stream)?,
6817                ))
6818            }
6819        }
6820    }
6821}
6822
6823/// Autogenerated definition for type OperationBody
6824#[allow(dead_code)]
6825#[derive(Debug, Clone, Eq, PartialEq)]
6826pub enum OperationBody {
6827    CreateAccount(CreateAccountOp),
6828    Payment(PaymentOp),
6829    PathPaymentStrictReceive(PathPaymentStrictReceiveOp),
6830    ManageSellOffer(ManageSellOfferOp),
6831    CreatePassiveSellOffer(CreatePassiveSellOfferOp),
6832    SetOptions(SetOptionsOp),
6833    ChangeTrust(ChangeTrustOp),
6834    AllowTrust(AllowTrustOp),
6835    AccountMerge(MuxedAccount),
6836    Inflation,
6837    ManageData(ManageDataOp),
6838    BumpSequence(BumpSequenceOp),
6839    ManageBuyOffer(ManageBuyOfferOp),
6840    PathPaymentStrictSend(PathPaymentStrictSendOp),
6841    CreateClaimableBalance(CreateClaimableBalanceOp),
6842    ClaimClaimableBalance(ClaimClaimableBalanceOp),
6843    BeginSponsoringFutureReserves(BeginSponsoringFutureReservesOp),
6844    EndSponsoringFutureReserves,
6845    RevokeSponsorship(RevokeSponsorshipOp),
6846    Clawback(ClawbackOp),
6847    ClawbackClaimableBalance(ClawbackClaimableBalanceOp),
6848    SetTrustLineFlags(SetTrustLineFlagsOp),
6849}
6850
6851impl XdrCodec for OperationBody {
6852    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
6853        match self {
6854            OperationBody::CreateAccount(value) => {
6855                OperationType::CreateAccount.to_xdr_buffered(write_stream);
6856                value.to_xdr_buffered(write_stream)
6857            }
6858            OperationBody::Payment(value) => {
6859                OperationType::Payment.to_xdr_buffered(write_stream);
6860                value.to_xdr_buffered(write_stream)
6861            }
6862            OperationBody::PathPaymentStrictReceive(value) => {
6863                OperationType::PathPaymentStrictReceive.to_xdr_buffered(write_stream);
6864                value.to_xdr_buffered(write_stream)
6865            }
6866            OperationBody::ManageSellOffer(value) => {
6867                OperationType::ManageSellOffer.to_xdr_buffered(write_stream);
6868                value.to_xdr_buffered(write_stream)
6869            }
6870            OperationBody::CreatePassiveSellOffer(value) => {
6871                OperationType::CreatePassiveSellOffer.to_xdr_buffered(write_stream);
6872                value.to_xdr_buffered(write_stream)
6873            }
6874            OperationBody::SetOptions(value) => {
6875                OperationType::SetOptions.to_xdr_buffered(write_stream);
6876                value.to_xdr_buffered(write_stream)
6877            }
6878            OperationBody::ChangeTrust(value) => {
6879                OperationType::ChangeTrust.to_xdr_buffered(write_stream);
6880                value.to_xdr_buffered(write_stream)
6881            }
6882            OperationBody::AllowTrust(value) => {
6883                OperationType::AllowTrust.to_xdr_buffered(write_stream);
6884                value.to_xdr_buffered(write_stream)
6885            }
6886            OperationBody::AccountMerge(value) => {
6887                OperationType::AccountMerge.to_xdr_buffered(write_stream);
6888                value.to_xdr_buffered(write_stream)
6889            }
6890            OperationBody::Inflation => OperationType::Inflation.to_xdr_buffered(write_stream),
6891            OperationBody::ManageData(value) => {
6892                OperationType::ManageData.to_xdr_buffered(write_stream);
6893                value.to_xdr_buffered(write_stream)
6894            }
6895            OperationBody::BumpSequence(value) => {
6896                OperationType::BumpSequence.to_xdr_buffered(write_stream);
6897                value.to_xdr_buffered(write_stream)
6898            }
6899            OperationBody::ManageBuyOffer(value) => {
6900                OperationType::ManageBuyOffer.to_xdr_buffered(write_stream);
6901                value.to_xdr_buffered(write_stream)
6902            }
6903            OperationBody::PathPaymentStrictSend(value) => {
6904                OperationType::PathPaymentStrictSend.to_xdr_buffered(write_stream);
6905                value.to_xdr_buffered(write_stream)
6906            }
6907            OperationBody::CreateClaimableBalance(value) => {
6908                OperationType::CreateClaimableBalance.to_xdr_buffered(write_stream);
6909                value.to_xdr_buffered(write_stream)
6910            }
6911            OperationBody::ClaimClaimableBalance(value) => {
6912                OperationType::ClaimClaimableBalance.to_xdr_buffered(write_stream);
6913                value.to_xdr_buffered(write_stream)
6914            }
6915            OperationBody::BeginSponsoringFutureReserves(value) => {
6916                OperationType::BeginSponsoringFutureReserves.to_xdr_buffered(write_stream);
6917                value.to_xdr_buffered(write_stream)
6918            }
6919            OperationBody::EndSponsoringFutureReserves => {
6920                OperationType::EndSponsoringFutureReserves.to_xdr_buffered(write_stream)
6921            }
6922            OperationBody::RevokeSponsorship(value) => {
6923                OperationType::RevokeSponsorship.to_xdr_buffered(write_stream);
6924                value.to_xdr_buffered(write_stream)
6925            }
6926            OperationBody::Clawback(value) => {
6927                OperationType::Clawback.to_xdr_buffered(write_stream);
6928                value.to_xdr_buffered(write_stream)
6929            }
6930            OperationBody::ClawbackClaimableBalance(value) => {
6931                OperationType::ClawbackClaimableBalance.to_xdr_buffered(write_stream);
6932                value.to_xdr_buffered(write_stream)
6933            }
6934            OperationBody::SetTrustLineFlags(value) => {
6935                OperationType::SetTrustLineFlags.to_xdr_buffered(write_stream);
6936                value.to_xdr_buffered(write_stream)
6937            }
6938        }
6939    }
6940
6941    fn from_xdr_buffered<T: AsRef<[u8]>>(
6942        read_stream: &mut ReadStream<T>,
6943    ) -> Result<Self, DecodeError> {
6944        match OperationType::from_xdr_buffered(read_stream)? {
6945            OperationType::CreateAccount => Ok(OperationBody::CreateAccount(
6946                CreateAccountOp::from_xdr_buffered(read_stream)?,
6947            )),
6948            OperationType::Payment => Ok(OperationBody::Payment(PaymentOp::from_xdr_buffered(
6949                read_stream,
6950            )?)),
6951            OperationType::PathPaymentStrictReceive => Ok(OperationBody::PathPaymentStrictReceive(
6952                PathPaymentStrictReceiveOp::from_xdr_buffered(read_stream)?,
6953            )),
6954            OperationType::ManageSellOffer => Ok(OperationBody::ManageSellOffer(
6955                ManageSellOfferOp::from_xdr_buffered(read_stream)?,
6956            )),
6957            OperationType::CreatePassiveSellOffer => Ok(OperationBody::CreatePassiveSellOffer(
6958                CreatePassiveSellOfferOp::from_xdr_buffered(read_stream)?,
6959            )),
6960            OperationType::SetOptions => Ok(OperationBody::SetOptions(
6961                SetOptionsOp::from_xdr_buffered(read_stream)?,
6962            )),
6963            OperationType::ChangeTrust => Ok(OperationBody::ChangeTrust(
6964                ChangeTrustOp::from_xdr_buffered(read_stream)?,
6965            )),
6966            OperationType::AllowTrust => Ok(OperationBody::AllowTrust(
6967                AllowTrustOp::from_xdr_buffered(read_stream)?,
6968            )),
6969            OperationType::AccountMerge => Ok(OperationBody::AccountMerge(
6970                MuxedAccount::from_xdr_buffered(read_stream)?,
6971            )),
6972            OperationType::Inflation => Ok(OperationBody::Inflation),
6973            OperationType::ManageData => Ok(OperationBody::ManageData(
6974                ManageDataOp::from_xdr_buffered(read_stream)?,
6975            )),
6976            OperationType::BumpSequence => Ok(OperationBody::BumpSequence(
6977                BumpSequenceOp::from_xdr_buffered(read_stream)?,
6978            )),
6979            OperationType::ManageBuyOffer => Ok(OperationBody::ManageBuyOffer(
6980                ManageBuyOfferOp::from_xdr_buffered(read_stream)?,
6981            )),
6982            OperationType::PathPaymentStrictSend => Ok(OperationBody::PathPaymentStrictSend(
6983                PathPaymentStrictSendOp::from_xdr_buffered(read_stream)?,
6984            )),
6985            OperationType::CreateClaimableBalance => Ok(OperationBody::CreateClaimableBalance(
6986                CreateClaimableBalanceOp::from_xdr_buffered(read_stream)?,
6987            )),
6988            OperationType::ClaimClaimableBalance => Ok(OperationBody::ClaimClaimableBalance(
6989                ClaimClaimableBalanceOp::from_xdr_buffered(read_stream)?,
6990            )),
6991            OperationType::BeginSponsoringFutureReserves => {
6992                Ok(OperationBody::BeginSponsoringFutureReserves(
6993                    BeginSponsoringFutureReservesOp::from_xdr_buffered(read_stream)?,
6994                ))
6995            }
6996            OperationType::EndSponsoringFutureReserves => {
6997                Ok(OperationBody::EndSponsoringFutureReserves)
6998            }
6999            OperationType::RevokeSponsorship => Ok(OperationBody::RevokeSponsorship(
7000                RevokeSponsorshipOp::from_xdr_buffered(read_stream)?,
7001            )),
7002            OperationType::Clawback => Ok(OperationBody::Clawback(ClawbackOp::from_xdr_buffered(
7003                read_stream,
7004            )?)),
7005            OperationType::ClawbackClaimableBalance => Ok(OperationBody::ClawbackClaimableBalance(
7006                ClawbackClaimableBalanceOp::from_xdr_buffered(read_stream)?,
7007            )),
7008            OperationType::SetTrustLineFlags => Ok(OperationBody::SetTrustLineFlags(
7009                SetTrustLineFlagsOp::from_xdr_buffered(read_stream)?,
7010            )),
7011        }
7012    }
7013}
7014
7015/// Autogenerated definition for type OperationId
7016#[allow(dead_code)]
7017#[cfg(feature = "all-types")]
7018#[derive(Debug, Clone, Eq, PartialEq)]
7019pub enum OperationId {
7020    EnvelopeTypeOpId(OperationIdId),
7021    Default(EnvelopeType),
7022}
7023
7024#[cfg(feature = "all-types")]
7025impl XdrCodec for OperationId {
7026    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7027        match self {
7028            OperationId::EnvelopeTypeOpId(value) => {
7029                EnvelopeType::EnvelopeTypeOpId.to_xdr_buffered(write_stream);
7030                value.to_xdr_buffered(write_stream)
7031            }
7032            OperationId::Default(code) => code.to_xdr_buffered(write_stream),
7033        }
7034    }
7035
7036    fn from_xdr_buffered<T: AsRef<[u8]>>(
7037        read_stream: &mut ReadStream<T>,
7038    ) -> Result<Self, DecodeError> {
7039        match EnvelopeType::from_xdr_buffered(read_stream)? {
7040            EnvelopeType::EnvelopeTypeOpId => Ok(OperationId::EnvelopeTypeOpId(
7041                OperationIdId::from_xdr_buffered(read_stream)?,
7042            )),
7043            code => Ok(OperationId::Default(code)),
7044        }
7045    }
7046}
7047
7048/// Autogenerated definition for type Memo
7049#[allow(dead_code)]
7050#[derive(Debug, Clone, Eq, PartialEq)]
7051pub enum Memo {
7052    MemoNone,
7053    MemoText(LimitedString<28>),
7054    MemoId(Uint64),
7055    MemoHash(Hash),
7056    MemoReturn(Hash),
7057}
7058
7059impl XdrCodec for Memo {
7060    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7061        match self {
7062            Memo::MemoNone => MemoType::MemoNone.to_xdr_buffered(write_stream),
7063            Memo::MemoText(value) => {
7064                MemoType::MemoText.to_xdr_buffered(write_stream);
7065                value.to_xdr_buffered(write_stream)
7066            }
7067            Memo::MemoId(value) => {
7068                MemoType::MemoId.to_xdr_buffered(write_stream);
7069                value.to_xdr_buffered(write_stream)
7070            }
7071            Memo::MemoHash(value) => {
7072                MemoType::MemoHash.to_xdr_buffered(write_stream);
7073                value.to_xdr_buffered(write_stream)
7074            }
7075            Memo::MemoReturn(value) => {
7076                MemoType::MemoReturn.to_xdr_buffered(write_stream);
7077                value.to_xdr_buffered(write_stream)
7078            }
7079        }
7080    }
7081
7082    fn from_xdr_buffered<T: AsRef<[u8]>>(
7083        read_stream: &mut ReadStream<T>,
7084    ) -> Result<Self, DecodeError> {
7085        match MemoType::from_xdr_buffered(read_stream)? {
7086            MemoType::MemoNone => Ok(Memo::MemoNone),
7087            MemoType::MemoText => Ok(Memo::MemoText(LimitedString::<28>::from_xdr_buffered(
7088                read_stream,
7089            )?)),
7090            MemoType::MemoId => Ok(Memo::MemoId(Uint64::from_xdr_buffered(read_stream)?)),
7091            MemoType::MemoHash => Ok(Memo::MemoHash(Hash::from_xdr_buffered(read_stream)?)),
7092            MemoType::MemoReturn => Ok(Memo::MemoReturn(Hash::from_xdr_buffered(read_stream)?)),
7093        }
7094    }
7095}
7096
7097/// Autogenerated definition for type TransactionV0Ext
7098#[allow(dead_code)]
7099#[derive(Debug, Clone, Eq, PartialEq)]
7100pub enum TransactionV0Ext {
7101    V0,
7102    Default(i32),
7103}
7104
7105impl XdrCodec for TransactionV0Ext {
7106    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7107        match self {
7108            TransactionV0Ext::V0 => (0 as i32).to_xdr_buffered(write_stream),
7109            TransactionV0Ext::Default(code) => code.to_xdr_buffered(write_stream),
7110        }
7111    }
7112
7113    fn from_xdr_buffered<T: AsRef<[u8]>>(
7114        read_stream: &mut ReadStream<T>,
7115    ) -> Result<Self, DecodeError> {
7116        match i32::from_xdr_buffered(read_stream)? {
7117            0 => Ok(TransactionV0Ext::V0),
7118            code => Ok(TransactionV0Ext::Default(code)),
7119        }
7120    }
7121}
7122
7123/// Autogenerated definition for type TransactionExt
7124#[allow(dead_code)]
7125#[derive(Debug, Clone, Eq, PartialEq)]
7126pub enum TransactionExt {
7127    V0,
7128    Default(i32),
7129}
7130
7131impl XdrCodec for TransactionExt {
7132    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7133        match self {
7134            TransactionExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
7135            TransactionExt::Default(code) => code.to_xdr_buffered(write_stream),
7136        }
7137    }
7138
7139    fn from_xdr_buffered<T: AsRef<[u8]>>(
7140        read_stream: &mut ReadStream<T>,
7141    ) -> Result<Self, DecodeError> {
7142        match i32::from_xdr_buffered(read_stream)? {
7143            0 => Ok(TransactionExt::V0),
7144            code => Ok(TransactionExt::Default(code)),
7145        }
7146    }
7147}
7148
7149/// Autogenerated definition for type FeeBumpTransactionInnerTx
7150#[allow(dead_code)]
7151#[derive(Debug, Clone, Eq, PartialEq)]
7152pub enum FeeBumpTransactionInnerTx {
7153    EnvelopeTypeTx(TransactionV1Envelope),
7154    Default(EnvelopeType),
7155}
7156
7157impl XdrCodec for FeeBumpTransactionInnerTx {
7158    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7159        match self {
7160            FeeBumpTransactionInnerTx::EnvelopeTypeTx(value) => {
7161                EnvelopeType::EnvelopeTypeTx.to_xdr_buffered(write_stream);
7162                value.to_xdr_buffered(write_stream)
7163            }
7164            FeeBumpTransactionInnerTx::Default(code) => code.to_xdr_buffered(write_stream),
7165        }
7166    }
7167
7168    fn from_xdr_buffered<T: AsRef<[u8]>>(
7169        read_stream: &mut ReadStream<T>,
7170    ) -> Result<Self, DecodeError> {
7171        match EnvelopeType::from_xdr_buffered(read_stream)? {
7172            EnvelopeType::EnvelopeTypeTx => Ok(FeeBumpTransactionInnerTx::EnvelopeTypeTx(
7173                TransactionV1Envelope::from_xdr_buffered(read_stream)?,
7174            )),
7175            code => Ok(FeeBumpTransactionInnerTx::Default(code)),
7176        }
7177    }
7178}
7179
7180/// Autogenerated definition for type FeeBumpTransactionExt
7181#[allow(dead_code)]
7182#[derive(Debug, Clone, Eq, PartialEq)]
7183pub enum FeeBumpTransactionExt {
7184    V0,
7185    Default(i32),
7186}
7187
7188impl XdrCodec for FeeBumpTransactionExt {
7189    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7190        match self {
7191            FeeBumpTransactionExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
7192            FeeBumpTransactionExt::Default(code) => code.to_xdr_buffered(write_stream),
7193        }
7194    }
7195
7196    fn from_xdr_buffered<T: AsRef<[u8]>>(
7197        read_stream: &mut ReadStream<T>,
7198    ) -> Result<Self, DecodeError> {
7199        match i32::from_xdr_buffered(read_stream)? {
7200            0 => Ok(FeeBumpTransactionExt::V0),
7201            code => Ok(FeeBumpTransactionExt::Default(code)),
7202        }
7203    }
7204}
7205
7206/// Autogenerated definition for type TransactionEnvelope
7207#[allow(dead_code)]
7208#[derive(Debug, Clone, Eq, PartialEq)]
7209pub enum TransactionEnvelope {
7210    EnvelopeTypeTxV0(TransactionV0Envelope),
7211    EnvelopeTypeTx(TransactionV1Envelope),
7212    EnvelopeTypeTxFeeBump(FeeBumpTransactionEnvelope),
7213    Default(EnvelopeType),
7214}
7215
7216impl XdrCodec for TransactionEnvelope {
7217    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7218        match self {
7219            TransactionEnvelope::EnvelopeTypeTxV0(value) => {
7220                EnvelopeType::EnvelopeTypeTxV0.to_xdr_buffered(write_stream);
7221                value.to_xdr_buffered(write_stream)
7222            }
7223            TransactionEnvelope::EnvelopeTypeTx(value) => {
7224                EnvelopeType::EnvelopeTypeTx.to_xdr_buffered(write_stream);
7225                value.to_xdr_buffered(write_stream)
7226            }
7227            TransactionEnvelope::EnvelopeTypeTxFeeBump(value) => {
7228                EnvelopeType::EnvelopeTypeTxFeeBump.to_xdr_buffered(write_stream);
7229                value.to_xdr_buffered(write_stream)
7230            }
7231            TransactionEnvelope::Default(code) => code.to_xdr_buffered(write_stream),
7232        }
7233    }
7234
7235    fn from_xdr_buffered<T: AsRef<[u8]>>(
7236        read_stream: &mut ReadStream<T>,
7237    ) -> Result<Self, DecodeError> {
7238        match EnvelopeType::from_xdr_buffered(read_stream)? {
7239            EnvelopeType::EnvelopeTypeTxV0 => Ok(TransactionEnvelope::EnvelopeTypeTxV0(
7240                TransactionV0Envelope::from_xdr_buffered(read_stream)?,
7241            )),
7242            EnvelopeType::EnvelopeTypeTx => Ok(TransactionEnvelope::EnvelopeTypeTx(
7243                TransactionV1Envelope::from_xdr_buffered(read_stream)?,
7244            )),
7245            EnvelopeType::EnvelopeTypeTxFeeBump => Ok(TransactionEnvelope::EnvelopeTypeTxFeeBump(
7246                FeeBumpTransactionEnvelope::from_xdr_buffered(read_stream)?,
7247            )),
7248            code => Ok(TransactionEnvelope::Default(code)),
7249        }
7250    }
7251}
7252
7253/// Autogenerated definition for type TransactionSignaturePayloadTaggedTransaction
7254#[allow(dead_code)]
7255#[derive(Debug, Clone, Eq, PartialEq)]
7256pub enum TransactionSignaturePayloadTaggedTransaction {
7257    EnvelopeTypeTx(Transaction),
7258    EnvelopeTypeTxFeeBump(FeeBumpTransaction),
7259    Default(EnvelopeType),
7260}
7261
7262impl XdrCodec for TransactionSignaturePayloadTaggedTransaction {
7263    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7264        match self {
7265            TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTx(value) => {
7266                EnvelopeType::EnvelopeTypeTx.to_xdr_buffered(write_stream);
7267                value.to_xdr_buffered(write_stream)
7268            }
7269            TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTxFeeBump(value) => {
7270                EnvelopeType::EnvelopeTypeTxFeeBump.to_xdr_buffered(write_stream);
7271                value.to_xdr_buffered(write_stream)
7272            }
7273            TransactionSignaturePayloadTaggedTransaction::Default(code) => {
7274                code.to_xdr_buffered(write_stream)
7275            }
7276        }
7277    }
7278
7279    fn from_xdr_buffered<T: AsRef<[u8]>>(
7280        read_stream: &mut ReadStream<T>,
7281    ) -> Result<Self, DecodeError> {
7282        match EnvelopeType::from_xdr_buffered(read_stream)? {
7283            EnvelopeType::EnvelopeTypeTx => Ok(
7284                TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTx(
7285                    Transaction::from_xdr_buffered(read_stream)?,
7286                ),
7287            ),
7288            EnvelopeType::EnvelopeTypeTxFeeBump => Ok(
7289                TransactionSignaturePayloadTaggedTransaction::EnvelopeTypeTxFeeBump(
7290                    FeeBumpTransaction::from_xdr_buffered(read_stream)?,
7291                ),
7292            ),
7293            code => Ok(TransactionSignaturePayloadTaggedTransaction::Default(code)),
7294        }
7295    }
7296}
7297
7298/// Autogenerated definition for type ClaimAtom
7299#[allow(dead_code)]
7300#[derive(Debug, Clone, Eq, PartialEq)]
7301pub enum ClaimAtom {
7302    ClaimAtomTypeV0(ClaimOfferAtomV0),
7303    ClaimAtomTypeOrderBook(ClaimOfferAtom),
7304}
7305
7306impl XdrCodec for ClaimAtom {
7307    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7308        match self {
7309            ClaimAtom::ClaimAtomTypeV0(value) => {
7310                ClaimAtomType::ClaimAtomTypeV0.to_xdr_buffered(write_stream);
7311                value.to_xdr_buffered(write_stream)
7312            }
7313            ClaimAtom::ClaimAtomTypeOrderBook(value) => {
7314                ClaimAtomType::ClaimAtomTypeOrderBook.to_xdr_buffered(write_stream);
7315                value.to_xdr_buffered(write_stream)
7316            }
7317        }
7318    }
7319
7320    fn from_xdr_buffered<T: AsRef<[u8]>>(
7321        read_stream: &mut ReadStream<T>,
7322    ) -> Result<Self, DecodeError> {
7323        match ClaimAtomType::from_xdr_buffered(read_stream)? {
7324            ClaimAtomType::ClaimAtomTypeV0 => Ok(ClaimAtom::ClaimAtomTypeV0(
7325                ClaimOfferAtomV0::from_xdr_buffered(read_stream)?,
7326            )),
7327            ClaimAtomType::ClaimAtomTypeOrderBook => Ok(ClaimAtom::ClaimAtomTypeOrderBook(
7328                ClaimOfferAtom::from_xdr_buffered(read_stream)?,
7329            )),
7330        }
7331    }
7332}
7333
7334/// Autogenerated definition for type CreateAccountResult
7335#[allow(dead_code)]
7336#[derive(Debug, Clone, Eq, PartialEq)]
7337pub enum CreateAccountResult {
7338    CreateAccountSuccess,
7339    Default(CreateAccountResultCode),
7340}
7341
7342impl XdrCodec for CreateAccountResult {
7343    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7344        match self {
7345            CreateAccountResult::CreateAccountSuccess => {
7346                CreateAccountResultCode::CreateAccountSuccess.to_xdr_buffered(write_stream)
7347            }
7348            CreateAccountResult::Default(code) => code.to_xdr_buffered(write_stream),
7349        }
7350    }
7351
7352    fn from_xdr_buffered<T: AsRef<[u8]>>(
7353        read_stream: &mut ReadStream<T>,
7354    ) -> Result<Self, DecodeError> {
7355        match CreateAccountResultCode::from_xdr_buffered(read_stream)? {
7356            CreateAccountResultCode::CreateAccountSuccess => {
7357                Ok(CreateAccountResult::CreateAccountSuccess)
7358            }
7359            code => Ok(CreateAccountResult::Default(code)),
7360        }
7361    }
7362}
7363
7364/// Autogenerated definition for type PaymentResult
7365#[allow(dead_code)]
7366#[derive(Debug, Clone, Eq, PartialEq)]
7367pub enum PaymentResult {
7368    PaymentSuccess,
7369    Default(PaymentResultCode),
7370}
7371
7372impl XdrCodec for PaymentResult {
7373    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7374        match self {
7375            PaymentResult::PaymentSuccess => {
7376                PaymentResultCode::PaymentSuccess.to_xdr_buffered(write_stream)
7377            }
7378            PaymentResult::Default(code) => code.to_xdr_buffered(write_stream),
7379        }
7380    }
7381
7382    fn from_xdr_buffered<T: AsRef<[u8]>>(
7383        read_stream: &mut ReadStream<T>,
7384    ) -> Result<Self, DecodeError> {
7385        match PaymentResultCode::from_xdr_buffered(read_stream)? {
7386            PaymentResultCode::PaymentSuccess => Ok(PaymentResult::PaymentSuccess),
7387            code => Ok(PaymentResult::Default(code)),
7388        }
7389    }
7390}
7391
7392/// Autogenerated definition for type PathPaymentStrictReceiveResult
7393#[allow(dead_code)]
7394#[derive(Debug, Clone, Eq, PartialEq)]
7395pub enum PathPaymentStrictReceiveResult {
7396    PathPaymentStrictReceiveSuccess(PathPaymentStrictReceiveResultSuccess),
7397    PathPaymentStrictReceiveNoIssuer(Asset),
7398    Default(PathPaymentStrictReceiveResultCode),
7399}
7400
7401impl XdrCodec for PathPaymentStrictReceiveResult {
7402    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7403        match self {
7404            PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSuccess(value) => {
7405                PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSuccess
7406                    .to_xdr_buffered(write_stream);
7407                value.to_xdr_buffered(write_stream)
7408            }
7409            PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoIssuer(value) => {
7410                PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoIssuer
7411                    .to_xdr_buffered(write_stream);
7412                value.to_xdr_buffered(write_stream)
7413            }
7414            PathPaymentStrictReceiveResult::Default(code) => code.to_xdr_buffered(write_stream),
7415        }
7416    }
7417
7418    fn from_xdr_buffered<T: AsRef<[u8]>>(
7419        read_stream: &mut ReadStream<T>,
7420    ) -> Result<Self, DecodeError> {
7421        match PathPaymentStrictReceiveResultCode::from_xdr_buffered(read_stream)? {
7422            PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveSuccess => Ok(
7423                PathPaymentStrictReceiveResult::PathPaymentStrictReceiveSuccess(
7424                    PathPaymentStrictReceiveResultSuccess::from_xdr_buffered(read_stream)?,
7425                ),
7426            ),
7427            PathPaymentStrictReceiveResultCode::PathPaymentStrictReceiveNoIssuer => Ok(
7428                PathPaymentStrictReceiveResult::PathPaymentStrictReceiveNoIssuer(
7429                    Asset::from_xdr_buffered(read_stream)?,
7430                ),
7431            ),
7432            code => Ok(PathPaymentStrictReceiveResult::Default(code)),
7433        }
7434    }
7435}
7436
7437/// Autogenerated definition for type PathPaymentStrictSendResult
7438#[allow(dead_code)]
7439#[derive(Debug, Clone, Eq, PartialEq)]
7440pub enum PathPaymentStrictSendResult {
7441    PathPaymentStrictSendSuccess(PathPaymentStrictSendResultSuccess),
7442    PathPaymentStrictSendNoIssuer(Asset),
7443    Default(PathPaymentStrictSendResultCode),
7444}
7445
7446impl XdrCodec for PathPaymentStrictSendResult {
7447    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7448        match self {
7449            PathPaymentStrictSendResult::PathPaymentStrictSendSuccess(value) => {
7450                PathPaymentStrictSendResultCode::PathPaymentStrictSendSuccess
7451                    .to_xdr_buffered(write_stream);
7452                value.to_xdr_buffered(write_stream)
7453            }
7454            PathPaymentStrictSendResult::PathPaymentStrictSendNoIssuer(value) => {
7455                PathPaymentStrictSendResultCode::PathPaymentStrictSendNoIssuer
7456                    .to_xdr_buffered(write_stream);
7457                value.to_xdr_buffered(write_stream)
7458            }
7459            PathPaymentStrictSendResult::Default(code) => code.to_xdr_buffered(write_stream),
7460        }
7461    }
7462
7463    fn from_xdr_buffered<T: AsRef<[u8]>>(
7464        read_stream: &mut ReadStream<T>,
7465    ) -> Result<Self, DecodeError> {
7466        match PathPaymentStrictSendResultCode::from_xdr_buffered(read_stream)? {
7467            PathPaymentStrictSendResultCode::PathPaymentStrictSendSuccess => {
7468                Ok(PathPaymentStrictSendResult::PathPaymentStrictSendSuccess(
7469                    PathPaymentStrictSendResultSuccess::from_xdr_buffered(read_stream)?,
7470                ))
7471            }
7472            PathPaymentStrictSendResultCode::PathPaymentStrictSendNoIssuer => {
7473                Ok(PathPaymentStrictSendResult::PathPaymentStrictSendNoIssuer(
7474                    Asset::from_xdr_buffered(read_stream)?,
7475                ))
7476            }
7477            code => Ok(PathPaymentStrictSendResult::Default(code)),
7478        }
7479    }
7480}
7481
7482/// Autogenerated definition for type ManageOfferSuccessResultOffer
7483#[allow(dead_code)]
7484#[derive(Debug, Clone, Eq, PartialEq)]
7485pub enum ManageOfferSuccessResultOffer {
7486    ManageOfferCreated(OfferEntry),
7487    ManageOfferUpdated(OfferEntry),
7488    Default(ManageOfferEffect),
7489}
7490
7491impl XdrCodec for ManageOfferSuccessResultOffer {
7492    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7493        match self {
7494            ManageOfferSuccessResultOffer::ManageOfferCreated(value) => {
7495                ManageOfferEffect::ManageOfferCreated.to_xdr_buffered(write_stream);
7496                value.to_xdr_buffered(write_stream)
7497            }
7498            ManageOfferSuccessResultOffer::ManageOfferUpdated(value) => {
7499                ManageOfferEffect::ManageOfferUpdated.to_xdr_buffered(write_stream);
7500                value.to_xdr_buffered(write_stream)
7501            }
7502            ManageOfferSuccessResultOffer::Default(code) => code.to_xdr_buffered(write_stream),
7503        }
7504    }
7505
7506    fn from_xdr_buffered<T: AsRef<[u8]>>(
7507        read_stream: &mut ReadStream<T>,
7508    ) -> Result<Self, DecodeError> {
7509        match ManageOfferEffect::from_xdr_buffered(read_stream)? {
7510            ManageOfferEffect::ManageOfferCreated => {
7511                Ok(ManageOfferSuccessResultOffer::ManageOfferCreated(
7512                    OfferEntry::from_xdr_buffered(read_stream)?,
7513                ))
7514            }
7515            ManageOfferEffect::ManageOfferUpdated => {
7516                Ok(ManageOfferSuccessResultOffer::ManageOfferUpdated(
7517                    OfferEntry::from_xdr_buffered(read_stream)?,
7518                ))
7519            }
7520            code => Ok(ManageOfferSuccessResultOffer::Default(code)),
7521        }
7522    }
7523}
7524
7525/// Autogenerated definition for type ManageSellOfferResult
7526#[allow(dead_code)]
7527#[derive(Debug, Clone, Eq, PartialEq)]
7528pub enum ManageSellOfferResult {
7529    ManageSellOfferSuccess(ManageOfferSuccessResult),
7530    Default(ManageSellOfferResultCode),
7531}
7532
7533impl XdrCodec for ManageSellOfferResult {
7534    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7535        match self {
7536            ManageSellOfferResult::ManageSellOfferSuccess(value) => {
7537                ManageSellOfferResultCode::ManageSellOfferSuccess.to_xdr_buffered(write_stream);
7538                value.to_xdr_buffered(write_stream)
7539            }
7540            ManageSellOfferResult::Default(code) => code.to_xdr_buffered(write_stream),
7541        }
7542    }
7543
7544    fn from_xdr_buffered<T: AsRef<[u8]>>(
7545        read_stream: &mut ReadStream<T>,
7546    ) -> Result<Self, DecodeError> {
7547        match ManageSellOfferResultCode::from_xdr_buffered(read_stream)? {
7548            ManageSellOfferResultCode::ManageSellOfferSuccess => {
7549                Ok(ManageSellOfferResult::ManageSellOfferSuccess(
7550                    ManageOfferSuccessResult::from_xdr_buffered(read_stream)?,
7551                ))
7552            }
7553            code => Ok(ManageSellOfferResult::Default(code)),
7554        }
7555    }
7556}
7557
7558/// Autogenerated definition for type ManageBuyOfferResult
7559#[allow(dead_code)]
7560#[derive(Debug, Clone, Eq, PartialEq)]
7561pub enum ManageBuyOfferResult {
7562    ManageBuyOfferSuccess(ManageOfferSuccessResult),
7563    Default(ManageBuyOfferResultCode),
7564}
7565
7566impl XdrCodec for ManageBuyOfferResult {
7567    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7568        match self {
7569            ManageBuyOfferResult::ManageBuyOfferSuccess(value) => {
7570                ManageBuyOfferResultCode::ManageBuyOfferSuccess.to_xdr_buffered(write_stream);
7571                value.to_xdr_buffered(write_stream)
7572            }
7573            ManageBuyOfferResult::Default(code) => code.to_xdr_buffered(write_stream),
7574        }
7575    }
7576
7577    fn from_xdr_buffered<T: AsRef<[u8]>>(
7578        read_stream: &mut ReadStream<T>,
7579    ) -> Result<Self, DecodeError> {
7580        match ManageBuyOfferResultCode::from_xdr_buffered(read_stream)? {
7581            ManageBuyOfferResultCode::ManageBuyOfferSuccess => {
7582                Ok(ManageBuyOfferResult::ManageBuyOfferSuccess(
7583                    ManageOfferSuccessResult::from_xdr_buffered(read_stream)?,
7584                ))
7585            }
7586            code => Ok(ManageBuyOfferResult::Default(code)),
7587        }
7588    }
7589}
7590
7591/// Autogenerated definition for type SetOptionsResult
7592#[allow(dead_code)]
7593#[derive(Debug, Clone, Eq, PartialEq)]
7594pub enum SetOptionsResult {
7595    SetOptionsSuccess,
7596    Default(SetOptionsResultCode),
7597}
7598
7599impl XdrCodec for SetOptionsResult {
7600    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7601        match self {
7602            SetOptionsResult::SetOptionsSuccess => {
7603                SetOptionsResultCode::SetOptionsSuccess.to_xdr_buffered(write_stream)
7604            }
7605            SetOptionsResult::Default(code) => code.to_xdr_buffered(write_stream),
7606        }
7607    }
7608
7609    fn from_xdr_buffered<T: AsRef<[u8]>>(
7610        read_stream: &mut ReadStream<T>,
7611    ) -> Result<Self, DecodeError> {
7612        match SetOptionsResultCode::from_xdr_buffered(read_stream)? {
7613            SetOptionsResultCode::SetOptionsSuccess => Ok(SetOptionsResult::SetOptionsSuccess),
7614            code => Ok(SetOptionsResult::Default(code)),
7615        }
7616    }
7617}
7618
7619/// Autogenerated definition for type ChangeTrustResult
7620#[allow(dead_code)]
7621#[derive(Debug, Clone, Eq, PartialEq)]
7622pub enum ChangeTrustResult {
7623    ChangeTrustSuccess,
7624    Default(ChangeTrustResultCode),
7625}
7626
7627impl XdrCodec for ChangeTrustResult {
7628    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7629        match self {
7630            ChangeTrustResult::ChangeTrustSuccess => {
7631                ChangeTrustResultCode::ChangeTrustSuccess.to_xdr_buffered(write_stream)
7632            }
7633            ChangeTrustResult::Default(code) => code.to_xdr_buffered(write_stream),
7634        }
7635    }
7636
7637    fn from_xdr_buffered<T: AsRef<[u8]>>(
7638        read_stream: &mut ReadStream<T>,
7639    ) -> Result<Self, DecodeError> {
7640        match ChangeTrustResultCode::from_xdr_buffered(read_stream)? {
7641            ChangeTrustResultCode::ChangeTrustSuccess => Ok(ChangeTrustResult::ChangeTrustSuccess),
7642            code => Ok(ChangeTrustResult::Default(code)),
7643        }
7644    }
7645}
7646
7647/// Autogenerated definition for type AllowTrustResult
7648#[allow(dead_code)]
7649#[derive(Debug, Clone, Eq, PartialEq)]
7650pub enum AllowTrustResult {
7651    AllowTrustSuccess,
7652    Default(AllowTrustResultCode),
7653}
7654
7655impl XdrCodec for AllowTrustResult {
7656    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7657        match self {
7658            AllowTrustResult::AllowTrustSuccess => {
7659                AllowTrustResultCode::AllowTrustSuccess.to_xdr_buffered(write_stream)
7660            }
7661            AllowTrustResult::Default(code) => code.to_xdr_buffered(write_stream),
7662        }
7663    }
7664
7665    fn from_xdr_buffered<T: AsRef<[u8]>>(
7666        read_stream: &mut ReadStream<T>,
7667    ) -> Result<Self, DecodeError> {
7668        match AllowTrustResultCode::from_xdr_buffered(read_stream)? {
7669            AllowTrustResultCode::AllowTrustSuccess => Ok(AllowTrustResult::AllowTrustSuccess),
7670            code => Ok(AllowTrustResult::Default(code)),
7671        }
7672    }
7673}
7674
7675/// Autogenerated definition for type AccountMergeResult
7676#[allow(dead_code)]
7677#[derive(Debug, Clone, Eq, PartialEq)]
7678pub enum AccountMergeResult {
7679    AccountMergeSuccess(Int64),
7680    Default(AccountMergeResultCode),
7681}
7682
7683impl XdrCodec for AccountMergeResult {
7684    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7685        match self {
7686            AccountMergeResult::AccountMergeSuccess(value) => {
7687                AccountMergeResultCode::AccountMergeSuccess.to_xdr_buffered(write_stream);
7688                value.to_xdr_buffered(write_stream)
7689            }
7690            AccountMergeResult::Default(code) => code.to_xdr_buffered(write_stream),
7691        }
7692    }
7693
7694    fn from_xdr_buffered<T: AsRef<[u8]>>(
7695        read_stream: &mut ReadStream<T>,
7696    ) -> Result<Self, DecodeError> {
7697        match AccountMergeResultCode::from_xdr_buffered(read_stream)? {
7698            AccountMergeResultCode::AccountMergeSuccess => Ok(
7699                AccountMergeResult::AccountMergeSuccess(Int64::from_xdr_buffered(read_stream)?),
7700            ),
7701            code => Ok(AccountMergeResult::Default(code)),
7702        }
7703    }
7704}
7705
7706/// Autogenerated definition for type InflationResult
7707#[allow(dead_code)]
7708#[derive(Debug, Clone, Eq, PartialEq)]
7709pub enum InflationResult {
7710    InflationSuccess(UnlimitedVarArray<InflationPayout>),
7711    Default(InflationResultCode),
7712}
7713
7714impl XdrCodec for InflationResult {
7715    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7716        match self {
7717            InflationResult::InflationSuccess(value) => {
7718                InflationResultCode::InflationSuccess.to_xdr_buffered(write_stream);
7719                value.to_xdr_buffered(write_stream)
7720            }
7721            InflationResult::Default(code) => code.to_xdr_buffered(write_stream),
7722        }
7723    }
7724
7725    fn from_xdr_buffered<T: AsRef<[u8]>>(
7726        read_stream: &mut ReadStream<T>,
7727    ) -> Result<Self, DecodeError> {
7728        match InflationResultCode::from_xdr_buffered(read_stream)? {
7729            InflationResultCode::InflationSuccess => {
7730                Ok(InflationResult::InflationSuccess(UnlimitedVarArray::<
7731                    InflationPayout,
7732                >::from_xdr_buffered(
7733                    read_stream
7734                )?))
7735            }
7736            code => Ok(InflationResult::Default(code)),
7737        }
7738    }
7739}
7740
7741/// Autogenerated definition for type ManageDataResult
7742#[allow(dead_code)]
7743#[derive(Debug, Clone, Eq, PartialEq)]
7744pub enum ManageDataResult {
7745    ManageDataSuccess,
7746    Default(ManageDataResultCode),
7747}
7748
7749impl XdrCodec for ManageDataResult {
7750    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7751        match self {
7752            ManageDataResult::ManageDataSuccess => {
7753                ManageDataResultCode::ManageDataSuccess.to_xdr_buffered(write_stream)
7754            }
7755            ManageDataResult::Default(code) => code.to_xdr_buffered(write_stream),
7756        }
7757    }
7758
7759    fn from_xdr_buffered<T: AsRef<[u8]>>(
7760        read_stream: &mut ReadStream<T>,
7761    ) -> Result<Self, DecodeError> {
7762        match ManageDataResultCode::from_xdr_buffered(read_stream)? {
7763            ManageDataResultCode::ManageDataSuccess => Ok(ManageDataResult::ManageDataSuccess),
7764            code => Ok(ManageDataResult::Default(code)),
7765        }
7766    }
7767}
7768
7769/// Autogenerated definition for type BumpSequenceResult
7770#[allow(dead_code)]
7771#[derive(Debug, Clone, Eq, PartialEq)]
7772pub enum BumpSequenceResult {
7773    BumpSequenceSuccess,
7774    Default(BumpSequenceResultCode),
7775}
7776
7777impl XdrCodec for BumpSequenceResult {
7778    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7779        match self {
7780            BumpSequenceResult::BumpSequenceSuccess => {
7781                BumpSequenceResultCode::BumpSequenceSuccess.to_xdr_buffered(write_stream)
7782            }
7783            BumpSequenceResult::Default(code) => code.to_xdr_buffered(write_stream),
7784        }
7785    }
7786
7787    fn from_xdr_buffered<T: AsRef<[u8]>>(
7788        read_stream: &mut ReadStream<T>,
7789    ) -> Result<Self, DecodeError> {
7790        match BumpSequenceResultCode::from_xdr_buffered(read_stream)? {
7791            BumpSequenceResultCode::BumpSequenceSuccess => {
7792                Ok(BumpSequenceResult::BumpSequenceSuccess)
7793            }
7794            code => Ok(BumpSequenceResult::Default(code)),
7795        }
7796    }
7797}
7798
7799/// Autogenerated definition for type CreateClaimableBalanceResult
7800#[allow(dead_code)]
7801#[derive(Debug, Clone, Eq, PartialEq)]
7802pub enum CreateClaimableBalanceResult {
7803    CreateClaimableBalanceSuccess(ClaimableBalanceId),
7804    Default(CreateClaimableBalanceResultCode),
7805}
7806
7807impl XdrCodec for CreateClaimableBalanceResult {
7808    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7809        match self {
7810            CreateClaimableBalanceResult::CreateClaimableBalanceSuccess(value) => {
7811                CreateClaimableBalanceResultCode::CreateClaimableBalanceSuccess
7812                    .to_xdr_buffered(write_stream);
7813                value.to_xdr_buffered(write_stream)
7814            }
7815            CreateClaimableBalanceResult::Default(code) => code.to_xdr_buffered(write_stream),
7816        }
7817    }
7818
7819    fn from_xdr_buffered<T: AsRef<[u8]>>(
7820        read_stream: &mut ReadStream<T>,
7821    ) -> Result<Self, DecodeError> {
7822        match CreateClaimableBalanceResultCode::from_xdr_buffered(read_stream)? {
7823            CreateClaimableBalanceResultCode::CreateClaimableBalanceSuccess => {
7824                Ok(CreateClaimableBalanceResult::CreateClaimableBalanceSuccess(
7825                    ClaimableBalanceId::from_xdr_buffered(read_stream)?,
7826                ))
7827            }
7828            code => Ok(CreateClaimableBalanceResult::Default(code)),
7829        }
7830    }
7831}
7832
7833/// Autogenerated definition for type ClaimClaimableBalanceResult
7834#[allow(dead_code)]
7835#[derive(Debug, Clone, Eq, PartialEq)]
7836pub enum ClaimClaimableBalanceResult {
7837    ClaimClaimableBalanceSuccess,
7838    Default(ClaimClaimableBalanceResultCode),
7839}
7840
7841impl XdrCodec for ClaimClaimableBalanceResult {
7842    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7843        match self {
7844            ClaimClaimableBalanceResult::ClaimClaimableBalanceSuccess => {
7845                ClaimClaimableBalanceResultCode::ClaimClaimableBalanceSuccess
7846                    .to_xdr_buffered(write_stream)
7847            }
7848            ClaimClaimableBalanceResult::Default(code) => code.to_xdr_buffered(write_stream),
7849        }
7850    }
7851
7852    fn from_xdr_buffered<T: AsRef<[u8]>>(
7853        read_stream: &mut ReadStream<T>,
7854    ) -> Result<Self, DecodeError> {
7855        match ClaimClaimableBalanceResultCode::from_xdr_buffered(read_stream)? {
7856            ClaimClaimableBalanceResultCode::ClaimClaimableBalanceSuccess => {
7857                Ok(ClaimClaimableBalanceResult::ClaimClaimableBalanceSuccess)
7858            }
7859            code => Ok(ClaimClaimableBalanceResult::Default(code)),
7860        }
7861    }
7862}
7863
7864/// Autogenerated definition for type BeginSponsoringFutureReservesResult
7865#[allow(dead_code)]
7866#[derive(Debug, Clone, Eq, PartialEq)]
7867pub enum BeginSponsoringFutureReservesResult {
7868    BeginSponsoringFutureReservesSuccess,
7869    Default(BeginSponsoringFutureReservesResultCode),
7870}
7871
7872impl XdrCodec for BeginSponsoringFutureReservesResult {
7873    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7874        match self {
7875            BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesSuccess => {
7876                BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesSuccess
7877                    .to_xdr_buffered(write_stream)
7878            }
7879            BeginSponsoringFutureReservesResult::Default(code) => {
7880                code.to_xdr_buffered(write_stream)
7881            }
7882        }
7883    }
7884
7885    fn from_xdr_buffered<T: AsRef<[u8]>>(
7886        read_stream: &mut ReadStream<T>,
7887    ) -> Result<Self, DecodeError> {
7888        match BeginSponsoringFutureReservesResultCode::from_xdr_buffered(read_stream)? {
7889            BeginSponsoringFutureReservesResultCode::BeginSponsoringFutureReservesSuccess => {
7890                Ok(BeginSponsoringFutureReservesResult::BeginSponsoringFutureReservesSuccess)
7891            }
7892            code => Ok(BeginSponsoringFutureReservesResult::Default(code)),
7893        }
7894    }
7895}
7896
7897/// Autogenerated definition for type EndSponsoringFutureReservesResult
7898#[allow(dead_code)]
7899#[derive(Debug, Clone, Eq, PartialEq)]
7900pub enum EndSponsoringFutureReservesResult {
7901    EndSponsoringFutureReservesSuccess,
7902    Default(EndSponsoringFutureReservesResultCode),
7903}
7904
7905impl XdrCodec for EndSponsoringFutureReservesResult {
7906    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7907        match self {
7908            EndSponsoringFutureReservesResult::EndSponsoringFutureReservesSuccess => {
7909                EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesSuccess
7910                    .to_xdr_buffered(write_stream)
7911            }
7912            EndSponsoringFutureReservesResult::Default(code) => code.to_xdr_buffered(write_stream),
7913        }
7914    }
7915
7916    fn from_xdr_buffered<T: AsRef<[u8]>>(
7917        read_stream: &mut ReadStream<T>,
7918    ) -> Result<Self, DecodeError> {
7919        match EndSponsoringFutureReservesResultCode::from_xdr_buffered(read_stream)? {
7920            EndSponsoringFutureReservesResultCode::EndSponsoringFutureReservesSuccess => {
7921                Ok(EndSponsoringFutureReservesResult::EndSponsoringFutureReservesSuccess)
7922            }
7923            code => Ok(EndSponsoringFutureReservesResult::Default(code)),
7924        }
7925    }
7926}
7927
7928/// Autogenerated definition for type RevokeSponsorshipResult
7929#[allow(dead_code)]
7930#[derive(Debug, Clone, Eq, PartialEq)]
7931pub enum RevokeSponsorshipResult {
7932    RevokeSponsorshipSuccess,
7933    Default(RevokeSponsorshipResultCode),
7934}
7935
7936impl XdrCodec for RevokeSponsorshipResult {
7937    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7938        match self {
7939            RevokeSponsorshipResult::RevokeSponsorshipSuccess => {
7940                RevokeSponsorshipResultCode::RevokeSponsorshipSuccess.to_xdr_buffered(write_stream)
7941            }
7942            RevokeSponsorshipResult::Default(code) => code.to_xdr_buffered(write_stream),
7943        }
7944    }
7945
7946    fn from_xdr_buffered<T: AsRef<[u8]>>(
7947        read_stream: &mut ReadStream<T>,
7948    ) -> Result<Self, DecodeError> {
7949        match RevokeSponsorshipResultCode::from_xdr_buffered(read_stream)? {
7950            RevokeSponsorshipResultCode::RevokeSponsorshipSuccess => {
7951                Ok(RevokeSponsorshipResult::RevokeSponsorshipSuccess)
7952            }
7953            code => Ok(RevokeSponsorshipResult::Default(code)),
7954        }
7955    }
7956}
7957
7958/// Autogenerated definition for type ClawbackResult
7959#[allow(dead_code)]
7960#[derive(Debug, Clone, Eq, PartialEq)]
7961pub enum ClawbackResult {
7962    ClawbackSuccess,
7963    Default(ClawbackResultCode),
7964}
7965
7966impl XdrCodec for ClawbackResult {
7967    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7968        match self {
7969            ClawbackResult::ClawbackSuccess => {
7970                ClawbackResultCode::ClawbackSuccess.to_xdr_buffered(write_stream)
7971            }
7972            ClawbackResult::Default(code) => code.to_xdr_buffered(write_stream),
7973        }
7974    }
7975
7976    fn from_xdr_buffered<T: AsRef<[u8]>>(
7977        read_stream: &mut ReadStream<T>,
7978    ) -> Result<Self, DecodeError> {
7979        match ClawbackResultCode::from_xdr_buffered(read_stream)? {
7980            ClawbackResultCode::ClawbackSuccess => Ok(ClawbackResult::ClawbackSuccess),
7981            code => Ok(ClawbackResult::Default(code)),
7982        }
7983    }
7984}
7985
7986/// Autogenerated definition for type ClawbackClaimableBalanceResult
7987#[allow(dead_code)]
7988#[derive(Debug, Clone, Eq, PartialEq)]
7989pub enum ClawbackClaimableBalanceResult {
7990    ClawbackClaimableBalanceSuccess,
7991    Default(ClawbackClaimableBalanceResultCode),
7992}
7993
7994impl XdrCodec for ClawbackClaimableBalanceResult {
7995    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
7996        match self {
7997            ClawbackClaimableBalanceResult::ClawbackClaimableBalanceSuccess => {
7998                ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceSuccess
7999                    .to_xdr_buffered(write_stream)
8000            }
8001            ClawbackClaimableBalanceResult::Default(code) => code.to_xdr_buffered(write_stream),
8002        }
8003    }
8004
8005    fn from_xdr_buffered<T: AsRef<[u8]>>(
8006        read_stream: &mut ReadStream<T>,
8007    ) -> Result<Self, DecodeError> {
8008        match ClawbackClaimableBalanceResultCode::from_xdr_buffered(read_stream)? {
8009            ClawbackClaimableBalanceResultCode::ClawbackClaimableBalanceSuccess => {
8010                Ok(ClawbackClaimableBalanceResult::ClawbackClaimableBalanceSuccess)
8011            }
8012            code => Ok(ClawbackClaimableBalanceResult::Default(code)),
8013        }
8014    }
8015}
8016
8017/// Autogenerated definition for type SetTrustLineFlagsResult
8018#[allow(dead_code)]
8019#[derive(Debug, Clone, Eq, PartialEq)]
8020pub enum SetTrustLineFlagsResult {
8021    SetTrustLineFlagsSuccess,
8022    Default(SetTrustLineFlagsResultCode),
8023}
8024
8025impl XdrCodec for SetTrustLineFlagsResult {
8026    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8027        match self {
8028            SetTrustLineFlagsResult::SetTrustLineFlagsSuccess => {
8029                SetTrustLineFlagsResultCode::SetTrustLineFlagsSuccess.to_xdr_buffered(write_stream)
8030            }
8031            SetTrustLineFlagsResult::Default(code) => code.to_xdr_buffered(write_stream),
8032        }
8033    }
8034
8035    fn from_xdr_buffered<T: AsRef<[u8]>>(
8036        read_stream: &mut ReadStream<T>,
8037    ) -> Result<Self, DecodeError> {
8038        match SetTrustLineFlagsResultCode::from_xdr_buffered(read_stream)? {
8039            SetTrustLineFlagsResultCode::SetTrustLineFlagsSuccess => {
8040                Ok(SetTrustLineFlagsResult::SetTrustLineFlagsSuccess)
8041            }
8042            code => Ok(SetTrustLineFlagsResult::Default(code)),
8043        }
8044    }
8045}
8046
8047/// Autogenerated definition for type OperationResultTr
8048#[allow(dead_code)]
8049#[derive(Debug, Clone, Eq, PartialEq)]
8050pub enum OperationResultTr {
8051    CreateAccount(CreateAccountResult),
8052    Payment(PaymentResult),
8053    PathPaymentStrictReceive(PathPaymentStrictReceiveResult),
8054    ManageSellOffer(ManageSellOfferResult),
8055    CreatePassiveSellOffer(ManageSellOfferResult),
8056    SetOptions(SetOptionsResult),
8057    ChangeTrust(ChangeTrustResult),
8058    AllowTrust(AllowTrustResult),
8059    AccountMerge(AccountMergeResult),
8060    Inflation(InflationResult),
8061    ManageData(ManageDataResult),
8062    BumpSequence(BumpSequenceResult),
8063    ManageBuyOffer(ManageBuyOfferResult),
8064    PathPaymentStrictSend(PathPaymentStrictSendResult),
8065    CreateClaimableBalance(CreateClaimableBalanceResult),
8066    ClaimClaimableBalance(ClaimClaimableBalanceResult),
8067    BeginSponsoringFutureReserves(BeginSponsoringFutureReservesResult),
8068    EndSponsoringFutureReserves(EndSponsoringFutureReservesResult),
8069    RevokeSponsorship(RevokeSponsorshipResult),
8070    Clawback(ClawbackResult),
8071    ClawbackClaimableBalance(ClawbackClaimableBalanceResult),
8072    SetTrustLineFlags(SetTrustLineFlagsResult),
8073}
8074
8075impl XdrCodec for OperationResultTr {
8076    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8077        match self {
8078            OperationResultTr::CreateAccount(value) => {
8079                OperationType::CreateAccount.to_xdr_buffered(write_stream);
8080                value.to_xdr_buffered(write_stream)
8081            }
8082            OperationResultTr::Payment(value) => {
8083                OperationType::Payment.to_xdr_buffered(write_stream);
8084                value.to_xdr_buffered(write_stream)
8085            }
8086            OperationResultTr::PathPaymentStrictReceive(value) => {
8087                OperationType::PathPaymentStrictReceive.to_xdr_buffered(write_stream);
8088                value.to_xdr_buffered(write_stream)
8089            }
8090            OperationResultTr::ManageSellOffer(value) => {
8091                OperationType::ManageSellOffer.to_xdr_buffered(write_stream);
8092                value.to_xdr_buffered(write_stream)
8093            }
8094            OperationResultTr::CreatePassiveSellOffer(value) => {
8095                OperationType::CreatePassiveSellOffer.to_xdr_buffered(write_stream);
8096                value.to_xdr_buffered(write_stream)
8097            }
8098            OperationResultTr::SetOptions(value) => {
8099                OperationType::SetOptions.to_xdr_buffered(write_stream);
8100                value.to_xdr_buffered(write_stream)
8101            }
8102            OperationResultTr::ChangeTrust(value) => {
8103                OperationType::ChangeTrust.to_xdr_buffered(write_stream);
8104                value.to_xdr_buffered(write_stream)
8105            }
8106            OperationResultTr::AllowTrust(value) => {
8107                OperationType::AllowTrust.to_xdr_buffered(write_stream);
8108                value.to_xdr_buffered(write_stream)
8109            }
8110            OperationResultTr::AccountMerge(value) => {
8111                OperationType::AccountMerge.to_xdr_buffered(write_stream);
8112                value.to_xdr_buffered(write_stream)
8113            }
8114            OperationResultTr::Inflation(value) => {
8115                OperationType::Inflation.to_xdr_buffered(write_stream);
8116                value.to_xdr_buffered(write_stream)
8117            }
8118            OperationResultTr::ManageData(value) => {
8119                OperationType::ManageData.to_xdr_buffered(write_stream);
8120                value.to_xdr_buffered(write_stream)
8121            }
8122            OperationResultTr::BumpSequence(value) => {
8123                OperationType::BumpSequence.to_xdr_buffered(write_stream);
8124                value.to_xdr_buffered(write_stream)
8125            }
8126            OperationResultTr::ManageBuyOffer(value) => {
8127                OperationType::ManageBuyOffer.to_xdr_buffered(write_stream);
8128                value.to_xdr_buffered(write_stream)
8129            }
8130            OperationResultTr::PathPaymentStrictSend(value) => {
8131                OperationType::PathPaymentStrictSend.to_xdr_buffered(write_stream);
8132                value.to_xdr_buffered(write_stream)
8133            }
8134            OperationResultTr::CreateClaimableBalance(value) => {
8135                OperationType::CreateClaimableBalance.to_xdr_buffered(write_stream);
8136                value.to_xdr_buffered(write_stream)
8137            }
8138            OperationResultTr::ClaimClaimableBalance(value) => {
8139                OperationType::ClaimClaimableBalance.to_xdr_buffered(write_stream);
8140                value.to_xdr_buffered(write_stream)
8141            }
8142            OperationResultTr::BeginSponsoringFutureReserves(value) => {
8143                OperationType::BeginSponsoringFutureReserves.to_xdr_buffered(write_stream);
8144                value.to_xdr_buffered(write_stream)
8145            }
8146            OperationResultTr::EndSponsoringFutureReserves(value) => {
8147                OperationType::EndSponsoringFutureReserves.to_xdr_buffered(write_stream);
8148                value.to_xdr_buffered(write_stream)
8149            }
8150            OperationResultTr::RevokeSponsorship(value) => {
8151                OperationType::RevokeSponsorship.to_xdr_buffered(write_stream);
8152                value.to_xdr_buffered(write_stream)
8153            }
8154            OperationResultTr::Clawback(value) => {
8155                OperationType::Clawback.to_xdr_buffered(write_stream);
8156                value.to_xdr_buffered(write_stream)
8157            }
8158            OperationResultTr::ClawbackClaimableBalance(value) => {
8159                OperationType::ClawbackClaimableBalance.to_xdr_buffered(write_stream);
8160                value.to_xdr_buffered(write_stream)
8161            }
8162            OperationResultTr::SetTrustLineFlags(value) => {
8163                OperationType::SetTrustLineFlags.to_xdr_buffered(write_stream);
8164                value.to_xdr_buffered(write_stream)
8165            }
8166        }
8167    }
8168
8169    fn from_xdr_buffered<T: AsRef<[u8]>>(
8170        read_stream: &mut ReadStream<T>,
8171    ) -> Result<Self, DecodeError> {
8172        match OperationType::from_xdr_buffered(read_stream)? {
8173            OperationType::CreateAccount => Ok(OperationResultTr::CreateAccount(
8174                CreateAccountResult::from_xdr_buffered(read_stream)?,
8175            )),
8176            OperationType::Payment => Ok(OperationResultTr::Payment(
8177                PaymentResult::from_xdr_buffered(read_stream)?,
8178            )),
8179            OperationType::PathPaymentStrictReceive => {
8180                Ok(OperationResultTr::PathPaymentStrictReceive(
8181                    PathPaymentStrictReceiveResult::from_xdr_buffered(read_stream)?,
8182                ))
8183            }
8184            OperationType::ManageSellOffer => Ok(OperationResultTr::ManageSellOffer(
8185                ManageSellOfferResult::from_xdr_buffered(read_stream)?,
8186            )),
8187            OperationType::CreatePassiveSellOffer => Ok(OperationResultTr::CreatePassiveSellOffer(
8188                ManageSellOfferResult::from_xdr_buffered(read_stream)?,
8189            )),
8190            OperationType::SetOptions => Ok(OperationResultTr::SetOptions(
8191                SetOptionsResult::from_xdr_buffered(read_stream)?,
8192            )),
8193            OperationType::ChangeTrust => Ok(OperationResultTr::ChangeTrust(
8194                ChangeTrustResult::from_xdr_buffered(read_stream)?,
8195            )),
8196            OperationType::AllowTrust => Ok(OperationResultTr::AllowTrust(
8197                AllowTrustResult::from_xdr_buffered(read_stream)?,
8198            )),
8199            OperationType::AccountMerge => Ok(OperationResultTr::AccountMerge(
8200                AccountMergeResult::from_xdr_buffered(read_stream)?,
8201            )),
8202            OperationType::Inflation => Ok(OperationResultTr::Inflation(
8203                InflationResult::from_xdr_buffered(read_stream)?,
8204            )),
8205            OperationType::ManageData => Ok(OperationResultTr::ManageData(
8206                ManageDataResult::from_xdr_buffered(read_stream)?,
8207            )),
8208            OperationType::BumpSequence => Ok(OperationResultTr::BumpSequence(
8209                BumpSequenceResult::from_xdr_buffered(read_stream)?,
8210            )),
8211            OperationType::ManageBuyOffer => Ok(OperationResultTr::ManageBuyOffer(
8212                ManageBuyOfferResult::from_xdr_buffered(read_stream)?,
8213            )),
8214            OperationType::PathPaymentStrictSend => Ok(OperationResultTr::PathPaymentStrictSend(
8215                PathPaymentStrictSendResult::from_xdr_buffered(read_stream)?,
8216            )),
8217            OperationType::CreateClaimableBalance => Ok(OperationResultTr::CreateClaimableBalance(
8218                CreateClaimableBalanceResult::from_xdr_buffered(read_stream)?,
8219            )),
8220            OperationType::ClaimClaimableBalance => Ok(OperationResultTr::ClaimClaimableBalance(
8221                ClaimClaimableBalanceResult::from_xdr_buffered(read_stream)?,
8222            )),
8223            OperationType::BeginSponsoringFutureReserves => {
8224                Ok(OperationResultTr::BeginSponsoringFutureReserves(
8225                    BeginSponsoringFutureReservesResult::from_xdr_buffered(read_stream)?,
8226                ))
8227            }
8228            OperationType::EndSponsoringFutureReserves => {
8229                Ok(OperationResultTr::EndSponsoringFutureReserves(
8230                    EndSponsoringFutureReservesResult::from_xdr_buffered(read_stream)?,
8231                ))
8232            }
8233            OperationType::RevokeSponsorship => Ok(OperationResultTr::RevokeSponsorship(
8234                RevokeSponsorshipResult::from_xdr_buffered(read_stream)?,
8235            )),
8236            OperationType::Clawback => Ok(OperationResultTr::Clawback(
8237                ClawbackResult::from_xdr_buffered(read_stream)?,
8238            )),
8239            OperationType::ClawbackClaimableBalance => {
8240                Ok(OperationResultTr::ClawbackClaimableBalance(
8241                    ClawbackClaimableBalanceResult::from_xdr_buffered(read_stream)?,
8242                ))
8243            }
8244            OperationType::SetTrustLineFlags => Ok(OperationResultTr::SetTrustLineFlags(
8245                SetTrustLineFlagsResult::from_xdr_buffered(read_stream)?,
8246            )),
8247        }
8248    }
8249}
8250
8251/// Autogenerated definition for type OperationResult
8252#[allow(dead_code)]
8253#[derive(Debug, Clone, Eq, PartialEq)]
8254pub enum OperationResult {
8255    OpInner(OperationResultTr),
8256    Default(OperationResultCode),
8257}
8258
8259impl XdrCodec for OperationResult {
8260    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8261        match self {
8262            OperationResult::OpInner(value) => {
8263                OperationResultCode::OpInner.to_xdr_buffered(write_stream);
8264                value.to_xdr_buffered(write_stream)
8265            }
8266            OperationResult::Default(code) => code.to_xdr_buffered(write_stream),
8267        }
8268    }
8269
8270    fn from_xdr_buffered<T: AsRef<[u8]>>(
8271        read_stream: &mut ReadStream<T>,
8272    ) -> Result<Self, DecodeError> {
8273        match OperationResultCode::from_xdr_buffered(read_stream)? {
8274            OperationResultCode::OpInner => Ok(OperationResult::OpInner(
8275                OperationResultTr::from_xdr_buffered(read_stream)?,
8276            )),
8277            code => Ok(OperationResult::Default(code)),
8278        }
8279    }
8280}
8281
8282/// Autogenerated definition for type InnerTransactionResultResult
8283#[allow(dead_code)]
8284#[derive(Debug, Clone, Eq, PartialEq)]
8285pub enum InnerTransactionResultResult {
8286    TxSuccess(UnlimitedVarArray<OperationResult>),
8287    TxFailed(UnlimitedVarArray<OperationResult>),
8288    TxTooEarly,
8289    TxTooLate,
8290    TxMissingOperation,
8291    TxBadSeq,
8292    TxBadAuth,
8293    TxInsufficientBalance,
8294    TxNoAccount,
8295    TxInsufficientFee,
8296    TxBadAuthExtra,
8297    TxInternalError,
8298    TxNotSupported,
8299    TxBadSponsorship,
8300    Default(TransactionResultCode),
8301}
8302
8303impl XdrCodec for InnerTransactionResultResult {
8304    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8305        match self {
8306            InnerTransactionResultResult::TxSuccess(value) => {
8307                TransactionResultCode::TxSuccess.to_xdr_buffered(write_stream);
8308                value.to_xdr_buffered(write_stream)
8309            }
8310            InnerTransactionResultResult::TxFailed(value) => {
8311                TransactionResultCode::TxFailed.to_xdr_buffered(write_stream);
8312                value.to_xdr_buffered(write_stream)
8313            }
8314            InnerTransactionResultResult::TxTooEarly => {
8315                TransactionResultCode::TxTooEarly.to_xdr_buffered(write_stream)
8316            }
8317            InnerTransactionResultResult::TxTooLate => {
8318                TransactionResultCode::TxTooLate.to_xdr_buffered(write_stream)
8319            }
8320            InnerTransactionResultResult::TxMissingOperation => {
8321                TransactionResultCode::TxMissingOperation.to_xdr_buffered(write_stream)
8322            }
8323            InnerTransactionResultResult::TxBadSeq => {
8324                TransactionResultCode::TxBadSeq.to_xdr_buffered(write_stream)
8325            }
8326            InnerTransactionResultResult::TxBadAuth => {
8327                TransactionResultCode::TxBadAuth.to_xdr_buffered(write_stream)
8328            }
8329            InnerTransactionResultResult::TxInsufficientBalance => {
8330                TransactionResultCode::TxInsufficientBalance.to_xdr_buffered(write_stream)
8331            }
8332            InnerTransactionResultResult::TxNoAccount => {
8333                TransactionResultCode::TxNoAccount.to_xdr_buffered(write_stream)
8334            }
8335            InnerTransactionResultResult::TxInsufficientFee => {
8336                TransactionResultCode::TxInsufficientFee.to_xdr_buffered(write_stream)
8337            }
8338            InnerTransactionResultResult::TxBadAuthExtra => {
8339                TransactionResultCode::TxBadAuthExtra.to_xdr_buffered(write_stream)
8340            }
8341            InnerTransactionResultResult::TxInternalError => {
8342                TransactionResultCode::TxInternalError.to_xdr_buffered(write_stream)
8343            }
8344            InnerTransactionResultResult::TxNotSupported => {
8345                TransactionResultCode::TxNotSupported.to_xdr_buffered(write_stream)
8346            }
8347            InnerTransactionResultResult::TxBadSponsorship => {
8348                TransactionResultCode::TxBadSponsorship.to_xdr_buffered(write_stream)
8349            }
8350            InnerTransactionResultResult::Default(code) => code.to_xdr_buffered(write_stream),
8351        }
8352    }
8353
8354    fn from_xdr_buffered<T: AsRef<[u8]>>(
8355        read_stream: &mut ReadStream<T>,
8356    ) -> Result<Self, DecodeError> {
8357        match TransactionResultCode::from_xdr_buffered(read_stream)? {
8358            TransactionResultCode::TxSuccess => Ok(InnerTransactionResultResult::TxSuccess(
8359                UnlimitedVarArray::<OperationResult>::from_xdr_buffered(read_stream)?,
8360            )),
8361            TransactionResultCode::TxFailed => {
8362                Ok(InnerTransactionResultResult::TxFailed(UnlimitedVarArray::<
8363                    OperationResult,
8364                >::from_xdr_buffered(
8365                    read_stream
8366                )?))
8367            }
8368            TransactionResultCode::TxTooEarly => Ok(InnerTransactionResultResult::TxTooEarly),
8369            TransactionResultCode::TxTooLate => Ok(InnerTransactionResultResult::TxTooLate),
8370            TransactionResultCode::TxMissingOperation => {
8371                Ok(InnerTransactionResultResult::TxMissingOperation)
8372            }
8373            TransactionResultCode::TxBadSeq => Ok(InnerTransactionResultResult::TxBadSeq),
8374            TransactionResultCode::TxBadAuth => Ok(InnerTransactionResultResult::TxBadAuth),
8375            TransactionResultCode::TxInsufficientBalance => {
8376                Ok(InnerTransactionResultResult::TxInsufficientBalance)
8377            }
8378            TransactionResultCode::TxNoAccount => Ok(InnerTransactionResultResult::TxNoAccount),
8379            TransactionResultCode::TxInsufficientFee => {
8380                Ok(InnerTransactionResultResult::TxInsufficientFee)
8381            }
8382            TransactionResultCode::TxBadAuthExtra => {
8383                Ok(InnerTransactionResultResult::TxBadAuthExtra)
8384            }
8385            TransactionResultCode::TxInternalError => {
8386                Ok(InnerTransactionResultResult::TxInternalError)
8387            }
8388            TransactionResultCode::TxNotSupported => {
8389                Ok(InnerTransactionResultResult::TxNotSupported)
8390            }
8391            TransactionResultCode::TxBadSponsorship => {
8392                Ok(InnerTransactionResultResult::TxBadSponsorship)
8393            }
8394            code => Ok(InnerTransactionResultResult::Default(code)),
8395        }
8396    }
8397}
8398
8399/// Autogenerated definition for type InnerTransactionResultExt
8400#[allow(dead_code)]
8401#[derive(Debug, Clone, Eq, PartialEq)]
8402pub enum InnerTransactionResultExt {
8403    V0,
8404    Default(i32),
8405}
8406
8407impl XdrCodec for InnerTransactionResultExt {
8408    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8409        match self {
8410            InnerTransactionResultExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
8411            InnerTransactionResultExt::Default(code) => code.to_xdr_buffered(write_stream),
8412        }
8413    }
8414
8415    fn from_xdr_buffered<T: AsRef<[u8]>>(
8416        read_stream: &mut ReadStream<T>,
8417    ) -> Result<Self, DecodeError> {
8418        match i32::from_xdr_buffered(read_stream)? {
8419            0 => Ok(InnerTransactionResultExt::V0),
8420            code => Ok(InnerTransactionResultExt::Default(code)),
8421        }
8422    }
8423}
8424
8425/// Autogenerated definition for type TransactionResultResult
8426#[allow(dead_code)]
8427#[derive(Debug, Clone, Eq, PartialEq)]
8428pub enum TransactionResultResult {
8429    TxFeeBumpInnerSuccess(InnerTransactionResultPair),
8430    TxFeeBumpInnerFailed(InnerTransactionResultPair),
8431    TxSuccess(UnlimitedVarArray<OperationResult>),
8432    TxFailed(UnlimitedVarArray<OperationResult>),
8433    Default(TransactionResultCode),
8434}
8435
8436impl XdrCodec for TransactionResultResult {
8437    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8438        match self {
8439            TransactionResultResult::TxFeeBumpInnerSuccess(value) => {
8440                TransactionResultCode::TxFeeBumpInnerSuccess.to_xdr_buffered(write_stream);
8441                value.to_xdr_buffered(write_stream)
8442            }
8443            TransactionResultResult::TxFeeBumpInnerFailed(value) => {
8444                TransactionResultCode::TxFeeBumpInnerFailed.to_xdr_buffered(write_stream);
8445                value.to_xdr_buffered(write_stream)
8446            }
8447            TransactionResultResult::TxSuccess(value) => {
8448                TransactionResultCode::TxSuccess.to_xdr_buffered(write_stream);
8449                value.to_xdr_buffered(write_stream)
8450            }
8451            TransactionResultResult::TxFailed(value) => {
8452                TransactionResultCode::TxFailed.to_xdr_buffered(write_stream);
8453                value.to_xdr_buffered(write_stream)
8454            }
8455            TransactionResultResult::Default(code) => code.to_xdr_buffered(write_stream),
8456        }
8457    }
8458
8459    fn from_xdr_buffered<T: AsRef<[u8]>>(
8460        read_stream: &mut ReadStream<T>,
8461    ) -> Result<Self, DecodeError> {
8462        match TransactionResultCode::from_xdr_buffered(read_stream)? {
8463            TransactionResultCode::TxFeeBumpInnerSuccess => {
8464                Ok(TransactionResultResult::TxFeeBumpInnerSuccess(
8465                    InnerTransactionResultPair::from_xdr_buffered(read_stream)?,
8466                ))
8467            }
8468            TransactionResultCode::TxFeeBumpInnerFailed => {
8469                Ok(TransactionResultResult::TxFeeBumpInnerFailed(
8470                    InnerTransactionResultPair::from_xdr_buffered(read_stream)?,
8471                ))
8472            }
8473            TransactionResultCode::TxSuccess => {
8474                Ok(TransactionResultResult::TxSuccess(UnlimitedVarArray::<
8475                    OperationResult,
8476                >::from_xdr_buffered(
8477                    read_stream
8478                )?))
8479            }
8480            TransactionResultCode::TxFailed => {
8481                Ok(TransactionResultResult::TxFailed(UnlimitedVarArray::<
8482                    OperationResult,
8483                >::from_xdr_buffered(
8484                    read_stream
8485                )?))
8486            }
8487            code => Ok(TransactionResultResult::Default(code)),
8488        }
8489    }
8490}
8491
8492/// Autogenerated definition for type TransactionResultExt
8493#[allow(dead_code)]
8494#[derive(Debug, Clone, Eq, PartialEq)]
8495pub enum TransactionResultExt {
8496    V0,
8497    Default(i32),
8498}
8499
8500impl XdrCodec for TransactionResultExt {
8501    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8502        match self {
8503            TransactionResultExt::V0 => (0 as i32).to_xdr_buffered(write_stream),
8504            TransactionResultExt::Default(code) => code.to_xdr_buffered(write_stream),
8505        }
8506    }
8507
8508    fn from_xdr_buffered<T: AsRef<[u8]>>(
8509        read_stream: &mut ReadStream<T>,
8510    ) -> Result<Self, DecodeError> {
8511        match i32::from_xdr_buffered(read_stream)? {
8512            0 => Ok(TransactionResultExt::V0),
8513            code => Ok(TransactionResultExt::Default(code)),
8514        }
8515    }
8516}
8517
8518/// Autogenerated definition for type PublicKey
8519#[allow(dead_code)]
8520#[derive(Debug, Clone, Eq, PartialEq)]
8521pub enum PublicKey {
8522    PublicKeyTypeEd25519(Uint256),
8523}
8524
8525impl XdrCodec for PublicKey {
8526    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8527        match self {
8528            PublicKey::PublicKeyTypeEd25519(value) => {
8529                PublicKeyType::PublicKeyTypeEd25519.to_xdr_buffered(write_stream);
8530                value.to_xdr_buffered(write_stream)
8531            }
8532        }
8533    }
8534
8535    fn from_xdr_buffered<T: AsRef<[u8]>>(
8536        read_stream: &mut ReadStream<T>,
8537    ) -> Result<Self, DecodeError> {
8538        match PublicKeyType::from_xdr_buffered(read_stream)? {
8539            PublicKeyType::PublicKeyTypeEd25519 => Ok(PublicKey::PublicKeyTypeEd25519(
8540                Uint256::from_xdr_buffered(read_stream)?,
8541            )),
8542        }
8543    }
8544}
8545
8546/// Autogenerated definition for type SignerKey
8547#[allow(dead_code)]
8548#[derive(Debug, Clone, Eq, PartialEq)]
8549pub enum SignerKey {
8550    SignerKeyTypeEd25519(Uint256),
8551    SignerKeyTypePreAuthTx(Uint256),
8552    SignerKeyTypeHashX(Uint256),
8553}
8554
8555impl XdrCodec for SignerKey {
8556    fn to_xdr_buffered(&self, write_stream: &mut WriteStream) {
8557        match self {
8558            SignerKey::SignerKeyTypeEd25519(value) => {
8559                SignerKeyType::SignerKeyTypeEd25519.to_xdr_buffered(write_stream);
8560                value.to_xdr_buffered(write_stream)
8561            }
8562            SignerKey::SignerKeyTypePreAuthTx(value) => {
8563                SignerKeyType::SignerKeyTypePreAuthTx.to_xdr_buffered(write_stream);
8564                value.to_xdr_buffered(write_stream)
8565            }
8566            SignerKey::SignerKeyTypeHashX(value) => {
8567                SignerKeyType::SignerKeyTypeHashX.to_xdr_buffered(write_stream);
8568                value.to_xdr_buffered(write_stream)
8569            }
8570        }
8571    }
8572
8573    fn from_xdr_buffered<T: AsRef<[u8]>>(
8574        read_stream: &mut ReadStream<T>,
8575    ) -> Result<Self, DecodeError> {
8576        match SignerKeyType::from_xdr_buffered(read_stream)? {
8577            SignerKeyType::SignerKeyTypeEd25519 => Ok(SignerKey::SignerKeyTypeEd25519(
8578                Uint256::from_xdr_buffered(read_stream)?,
8579            )),
8580            SignerKeyType::SignerKeyTypePreAuthTx => Ok(SignerKey::SignerKeyTypePreAuthTx(
8581                Uint256::from_xdr_buffered(read_stream)?,
8582            )),
8583            SignerKeyType::SignerKeyTypeHashX => Ok(SignerKey::SignerKeyTypeHashX(
8584                Uint256::from_xdr_buffered(read_stream)?,
8585            )),
8586        }
8587    }
8588}