reth_storage_api/
prune_checkpoint.rs

1use reth_prune_types::{PruneCheckpoint, PruneSegment};
2use reth_storage_errors::provider::ProviderResult;
3
4/// The trait for fetching prune checkpoint related data.
5#[auto_impl::auto_impl(&, Arc)]
6pub trait PruneCheckpointReader: Send + Sync {
7    /// Fetch the prune checkpoint for the given segment.
8    fn get_prune_checkpoint(
9        &self,
10        segment: PruneSegment,
11    ) -> ProviderResult<Option<PruneCheckpoint>>;
12
13    /// Fetch all the prune checkpoints.
14    fn get_prune_checkpoints(&self) -> ProviderResult<Vec<(PruneSegment, PruneCheckpoint)>>;
15}
16
17/// The trait for updating prune checkpoint related data.
18#[auto_impl::auto_impl(&, Arc)]
19pub trait PruneCheckpointWriter: Send + Sync {
20    /// Save prune checkpoint.
21    fn save_prune_checkpoint(
22        &self,
23        segment: PruneSegment,
24        checkpoint: PruneCheckpoint,
25    ) -> ProviderResult<()>;
26}