pub trait BlockDevice {
type Error: Debug;
// Required methods
fn read(
&self,
blocks: &mut [Block],
start_block_idx: BlockIdx,
reason: &str,
) -> Result<(), Self::Error>;
fn write(
&self,
blocks: &[Block],
start_block_idx: BlockIdx,
) -> Result<(), Self::Error>;
fn num_blocks(&self) -> Result<BlockCount, Self::Error>;
}
Expand description
Represents a block device - a device which can read and write blocks (or sectors). Only supports devices which are <= 2 TiB in size.
Required Associated Types§
Required Methods§
Sourcefn read(
&self,
blocks: &mut [Block],
start_block_idx: BlockIdx,
reason: &str,
) -> Result<(), Self::Error>
fn read( &self, blocks: &mut [Block], start_block_idx: BlockIdx, reason: &str, ) -> Result<(), Self::Error>
Read one or more blocks, starting at the given block index.
Sourcefn write(
&self,
blocks: &[Block],
start_block_idx: BlockIdx,
) -> Result<(), Self::Error>
fn write( &self, blocks: &[Block], start_block_idx: BlockIdx, ) -> Result<(), Self::Error>
Write one or more blocks, starting at the given block index.
Sourcefn num_blocks(&self) -> Result<BlockCount, Self::Error>
fn num_blocks(&self) -> Result<BlockCount, Self::Error>
Determine how many blocks this device can hold.