pub trait FileAccess {
// Required methods
fn read_file_range(
&self,
file_id: &FileId,
offset: u64,
len: u64,
) -> Result<Vec<u8>>;
fn file_exists(&self, file_id: &FileId) -> bool;
fn file_length(&self, file_id: &FileId) -> Option<u64>;
fn read_file(&self, file_id: &FileId) -> Result<Vec<u8>>;
fn write_file_range(
&mut self,
file_id: &FileId,
offset: u64,
data: &[u8],
) -> Result<()>;
// Provided methods
fn read_file_range_into(
&self,
file_id: &FileId,
offset: u64,
dst: &mut [u8],
) -> Result<usize> { ... }
fn open_sequential_reader(
&self,
_file_id: &FileId,
) -> Result<Option<Box<dyn Read>>> { ... }
fn open_range_reader(
&self,
_file_id: &FileId,
) -> Result<Option<Box<dyn FileRangeReader>>> { ... }
}Expand description
Abstraction for file I/O during verification and repair.
Required Methods§
Sourcefn read_file_range(
&self,
file_id: &FileId,
offset: u64,
len: u64,
) -> Result<Vec<u8>>
fn read_file_range( &self, file_id: &FileId, offset: u64, len: u64, ) -> Result<Vec<u8>>
Read a range of bytes from a file identified by its FileId.
Sourcefn file_exists(&self, file_id: &FileId) -> bool
fn file_exists(&self, file_id: &FileId) -> bool
Check if a file exists on disk.
Sourcefn file_length(&self, file_id: &FileId) -> Option<u64>
fn file_length(&self, file_id: &FileId) -> Option<u64>
Get the actual length of a file on disk.
Provided Methods§
Sourcefn read_file_range_into(
&self,
file_id: &FileId,
offset: u64,
dst: &mut [u8],
) -> Result<usize>
fn read_file_range_into( &self, file_id: &FileId, offset: u64, dst: &mut [u8], ) -> Result<usize>
Read bytes into a caller-provided buffer, returning the number of bytes read.
Sourcefn open_sequential_reader(
&self,
_file_id: &FileId,
) -> Result<Option<Box<dyn Read>>>
fn open_sequential_reader( &self, _file_id: &FileId, ) -> Result<Option<Box<dyn Read>>>
Open a forward-only reader for hot paths that consume a whole file from offset 0.
Sourcefn open_range_reader(
&self,
_file_id: &FileId,
) -> Result<Option<Box<dyn FileRangeReader>>>
fn open_range_reader( &self, _file_id: &FileId, ) -> Result<Option<Box<dyn FileRangeReader>>>
Open a reusable seekable reader for range-oriented repair input.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".