#[allow(unused_imports, clippy::wildcard_imports)]
use super::*;
#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
#[cfg_attr(feature = "arbitrary", derive(Arbitrary))]
pub struct LedgerCloseMetaV1 {
pub ext: LedgerCloseMetaExt,
pub ledger_header: LedgerHeaderHistoryEntry,
pub tx_set: GeneralizedTransactionSet,
pub tx_processing: VecM<TransactionResultMeta>,
pub upgrades_processing: VecM<UpgradeEntryMeta>,
pub scp_info: VecM<ScpHistoryEntry>,
pub total_byte_size_of_live_soroban_state: u64,
pub evicted_keys: VecM<LedgerKey>,
pub unused: VecM<LedgerEntry>,
}
impl LedgerCloseMetaV1 {
#[must_use]
pub const fn const_xdr_len(&self) -> usize {
let mut empty: [u8; 0] = [];
let mut w = ConstWriter::new(&mut empty);
w.write_type_ledger_close_meta_v1(self);
w.len()
}
#[must_use]
pub const fn const_to_xdr<const N: usize>(&self) -> [u8; N] {
let mut buf = [0u8; N];
let mut w = ConstWriter::new(&mut buf);
w.write_type_ledger_close_meta_v1(self);
assert!(
w.len() == N,
"const_to_xdr: N does not equal the XDR-encoded length"
);
buf
}
}
impl ConstWriter<'_> {
pub const fn write_type_ledger_close_meta_v1(&mut self, v: &LedgerCloseMetaV1) {
self.write_type_ledger_close_meta_ext(&v.ext);
self.write_type_ledger_header_history_entry(&v.ledger_header);
self.write_type_generalized_transaction_set(&v.tx_set);
self.write_type_vec_transaction_result_meta(&v.tx_processing);
self.write_type_vec_upgrade_entry_meta(&v.upgrades_processing);
self.write_type_vec_scp_history_entry(&v.scp_info);
self.write_u64(v.total_byte_size_of_live_soroban_state);
self.write_type_vec_ledger_key(&v.evicted_keys);
self.write_type_vec_ledger_entry(&v.unused);
}
}