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
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.