reth_prune_types/
checkpoint.rs1use crate::PruneMode;
2#[cfg(any(test, feature = "reth-codec"))]
3use alloy_primitives::bytes;
4use alloy_primitives::{BlockNumber, TxNumber};
5
6#[derive(Debug, PartialEq, Eq, Clone, Copy)]
8#[cfg_attr(any(test, feature = "reth-codec"), derive(reth_codecs::Compact))]
9#[cfg_attr(any(test, feature = "reth-codec"), reth_codecs::add_arbitrary_tests(compact))]
10#[cfg_attr(any(test, feature = "test-utils"), derive(Default, arbitrary::Arbitrary))]
11#[cfg_attr(any(test, feature = "serde"), derive(serde::Serialize, serde::Deserialize))]
12pub struct PruneCheckpoint {
13 pub block_number: Option<BlockNumber>,
15 pub tx_number: Option<TxNumber>,
17 pub prune_mode: PruneMode,
19}
20
21impl PruneCheckpoint {
22 pub const fn pruned_through(block_number: BlockNumber) -> Self {
24 Self {
25 block_number: Some(block_number),
26 tx_number: None,
27 prune_mode: PruneMode::before_inclusive(block_number),
28 }
29 }
30}
31
32#[cfg(any(test, feature = "reth-codec"))]
33reth_codecs::impl_compression_for_compact!(PruneCheckpoint);