Trait sel4_async_block_io::BlockIO

source ·
pub trait BlockIO<A: Access>: BlockIOLayout {
    // Required method
    async fn read_or_write_blocks(
        &self,
        start_block_idx: u64,
        operation: Operation<'_, A>,
    ) -> Result<(), Self::Error>;

    // Provided methods
    async fn read_blocks(
        &self,
        start_block_idx: u64,
        buf: &mut [u8],
    ) -> Result<(), Self::Error>
       where A: ReadAccess { ... }
    async fn write_blocks(
        &self,
        start_block_idx: u64,
        buf: &[u8],
    ) -> Result<(), Self::Error>
       where A: WriteAccess { ... }
}

Required Methods§

source

async fn read_or_write_blocks( &self, start_block_idx: u64, operation: Operation<'_, A>, ) -> Result<(), Self::Error>

Provided Methods§

source

async fn read_blocks( &self, start_block_idx: u64, buf: &mut [u8], ) -> Result<(), Self::Error>
where A: ReadAccess,

source

async fn write_blocks( &self, start_block_idx: u64, buf: &[u8], ) -> Result<(), Self::Error>
where A: WriteAccess,

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T: BlockIO<A>, A: Access> BlockIO<A> for &T

source§

async fn read_or_write_blocks( &self, start_block_idx: u64, operation: Operation<'_, A>, ) -> Result<(), <&T as BlockIOLayout>::Error>

source§

impl<T: BlockIO<A>, A: Access> BlockIO<A> for Rc<T>

source§

async fn read_or_write_blocks( &self, start_block_idx: u64, operation: Operation<'_, A>, ) -> Result<(), Self::Error>

Implementors§

source§

impl<T: BlockIO<A>, A: Access> BlockIO<A> for CachedBlockIO<T>

source§

impl<T: BlockIO<A>, A: Access> BlockIO<A> for Partition<T>

source§

impl<T: BlockIO<A, BlockSize: HasNextBlockSize>, A: Access> BlockIO<A> for NextBlockSizeAdapter<T>

source§

impl<T: BlockIO<A, BlockSize: HasPrevBlockSize>, A: ReadAccess> BlockIO<A> for PrevBlockSizeAdapter<T>

source§

impl<T: ByteIO<A>, A: Access, N: BlockSize + Copy> BlockIO<A> for BlockIOAdapter<T, N>