reth_provider/traits/
static_file_provider.rs

1use alloy_primitives::BlockNumber;
2use reth_errors::ProviderResult;
3use reth_static_file_types::StaticFileSegment;
4use reth_storage_api::NodePrimitivesProvider;
5
6use crate::providers::{StaticFileProvider, StaticFileProviderRWRefMut};
7
8/// Static file provider factory.
9pub trait StaticFileProviderFactory: NodePrimitivesProvider {
10    /// Create new instance of static file provider.
11    fn static_file_provider(&self) -> StaticFileProvider<Self::Primitives>;
12
13    /// Returns a mutable reference to a
14    /// [`StaticFileProviderRW`](`crate::providers::StaticFileProviderRW`) of a
15    /// [`StaticFileSegment`].
16    fn get_static_file_writer(
17        &self,
18        block: BlockNumber,
19        segment: StaticFileSegment,
20    ) -> ProviderResult<StaticFileProviderRWRefMut<'_, Self::Primitives>>;
21}