stellar_xdr/generated/
state_archival_settings.rs1#[allow(unused_imports, clippy::wildcard_imports)]
2use super::*;
3
4#[cfg_attr(feature = "alloc", derive(Default))]
34#[derive(Clone, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
35#[cfg_attr(feature = "serde", cfg_eval::cfg_eval)]
36#[cfg_attr(feature = "arbitrary", derive(Arbitrary))]
37#[cfg_attr(
38 all(feature = "serde", feature = "alloc"),
39 serde_with::serde_as,
40 derive(serde::Serialize, serde::Deserialize),
41 serde(rename_all = "snake_case")
42)]
43#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
44pub struct StateArchivalSettings {
45 pub max_entry_ttl: u32,
46 pub min_temporary_ttl: u32,
47 pub min_persistent_ttl: u32,
48 #[cfg_attr(
49 all(feature = "serde", feature = "alloc"),
50 serde_as(as = "NumberOrString")
51 )]
52 pub persistent_rent_rate_denominator: i64,
53 #[cfg_attr(
54 all(feature = "serde", feature = "alloc"),
55 serde_as(as = "NumberOrString")
56 )]
57 pub temp_rent_rate_denominator: i64,
58 pub max_entries_to_archive: u32,
59 pub live_soroban_state_size_window_sample_size: u32,
60 pub live_soroban_state_size_window_sample_period: u32,
61 pub eviction_scan_size: u32,
62 pub starting_eviction_scan_level: u32,
63}
64
65impl ReadXdr for StateArchivalSettings {
66 #[cfg(feature = "std")]
67 fn read_xdr<R: Read>(r: &mut Limited<R>) -> Result<Self, Error> {
68 r.with_limited_depth(|r| {
69 Ok(Self {
70 max_entry_ttl: u32::read_xdr(r)?,
71 min_temporary_ttl: u32::read_xdr(r)?,
72 min_persistent_ttl: u32::read_xdr(r)?,
73 persistent_rent_rate_denominator: i64::read_xdr(r)?,
74 temp_rent_rate_denominator: i64::read_xdr(r)?,
75 max_entries_to_archive: u32::read_xdr(r)?,
76 live_soroban_state_size_window_sample_size: u32::read_xdr(r)?,
77 live_soroban_state_size_window_sample_period: u32::read_xdr(r)?,
78 eviction_scan_size: u32::read_xdr(r)?,
79 starting_eviction_scan_level: u32::read_xdr(r)?,
80 })
81 })
82 }
83}
84
85impl WriteXdr for StateArchivalSettings {
86 #[cfg(feature = "std")]
87 fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error> {
88 w.with_limited_depth(|w| {
89 self.max_entry_ttl.write_xdr(w)?;
90 self.min_temporary_ttl.write_xdr(w)?;
91 self.min_persistent_ttl.write_xdr(w)?;
92 self.persistent_rent_rate_denominator.write_xdr(w)?;
93 self.temp_rent_rate_denominator.write_xdr(w)?;
94 self.max_entries_to_archive.write_xdr(w)?;
95 self.live_soroban_state_size_window_sample_size
96 .write_xdr(w)?;
97 self.live_soroban_state_size_window_sample_period
98 .write_xdr(w)?;
99 self.eviction_scan_size.write_xdr(w)?;
100 self.starting_eviction_scan_level.write_xdr(w)?;
101 Ok(())
102 })
103 }
104}