embedded_sdmmc

Trait BlockDevice

Source
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§

Source

type Error: Debug

The errors that the BlockDevice can return. Must be debug formattable.

Required Methods§

Source

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.

Source

fn write( &self, blocks: &[Block], start_block_idx: BlockIdx, ) -> Result<(), Self::Error>

Write one or more blocks, starting at the given block index.

Source

fn num_blocks(&self) -> Result<BlockCount, Self::Error>

Determine how many blocks this device can hold.

Implementors§

Source§

impl<SPI, CS> BlockDevice for SdMmcSpi<SPI, CS>
where SPI: FullDuplex<u8>, <SPI as FullDuplex<u8>>::Error: Debug, CS: OutputPin,