Skip to main content

stellar_xdr/generated/
ledger_close_meta_batch.rs

1#[allow(unused_imports, clippy::wildcard_imports)]
2use super::*;
3
4/// LedgerCloseMetaBatch is an XDR Struct defined as:
5///
6/// ```text
7/// struct LedgerCloseMetaBatch
8/// {
9///     // starting ledger sequence number in the batch
10///     uint32 startSequence;
11///
12///     // ending ledger sequence number in the batch
13///     uint32 endSequence;
14///
15///     // Ledger close meta for each ledger within the batch
16///     LedgerCloseMeta ledgerCloseMetas<>;
17/// };
18/// ```
19///
20#[cfg_attr(feature = "alloc", derive(Default))]
21#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
22#[cfg_attr(feature = "serde", cfg_eval::cfg_eval)]
23#[cfg_attr(feature = "arbitrary", derive(Arbitrary))]
24#[cfg_attr(
25    all(feature = "serde", feature = "alloc"),
26    serde_with::serde_as,
27    derive(serde::Serialize, serde::Deserialize),
28    serde(rename_all = "snake_case")
29)]
30#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
31pub struct LedgerCloseMetaBatch {
32    pub start_sequence: u32,
33    pub end_sequence: u32,
34    pub ledger_close_metas: VecM<LedgerCloseMeta>,
35}
36
37impl ReadXdr for LedgerCloseMetaBatch {
38    #[cfg(feature = "std")]
39    fn read_xdr<R: Read>(r: &mut Limited<R>) -> Result<Self, Error> {
40        r.with_limited_depth(|r| {
41            Ok(Self {
42                start_sequence: u32::read_xdr(r)?,
43                end_sequence: u32::read_xdr(r)?,
44                ledger_close_metas: VecM::<LedgerCloseMeta>::read_xdr(r)?,
45            })
46        })
47    }
48}
49
50impl WriteXdr for LedgerCloseMetaBatch {
51    #[cfg(feature = "std")]
52    fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error> {
53        w.with_limited_depth(|w| {
54            self.start_sequence.write_xdr(w)?;
55            self.end_sequence.write_xdr(w)?;
56            self.ledger_close_metas.write_xdr(w)?;
57            Ok(())
58        })
59    }
60}