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}