DirectBaseOperations

Trait DirectBaseOperations 

Source
pub trait DirectBaseOperations: Send + Sync {
    // Required methods
    fn read(&self, buffer: &mut [u8], absolute_position: Size) -> Result<usize>;
    fn write(&self, buffer: &[u8], absolute_position: Size) -> Result<usize>;

    // Provided methods
    fn open(&self) -> Result<()> { ... }
    fn close(&self) -> Result<()> { ... }
    fn read_until(
        &self,
        buffer: &mut [u8],
        absolute_position: Size,
        delimiter: &[u8],
    ) -> Result<usize> { ... }
    fn write_pattern(
        &self,
        pattern: &[u8],
        count: usize,
        absolute_position: Size,
    ) -> Result<usize> { ... }
    fn write_vectored(
        &self,
        buffers: &[&[u8]],
        absolute_position: Size,
    ) -> Result<usize> { ... }
    fn flush(&self) -> Result<()> { ... }
    fn set_position(
        &self,
        _current_position: Size,
        _position: &Position,
    ) -> Result<Size> { ... }
    fn control(
        &self,
        _command: ControlCommandIdentifier,
        _input: &AnyByLayout,
        _output: &mut AnyByLayout,
    ) -> Result<()> { ... }
}

Required Methods§

Source

fn read(&self, buffer: &mut [u8], absolute_position: Size) -> Result<usize>

Source

fn write(&self, buffer: &[u8], absolute_position: Size) -> Result<usize>

Provided Methods§

Source

fn open(&self) -> Result<()>

Source

fn close(&self) -> Result<()>

Source

fn read_until( &self, buffer: &mut [u8], absolute_position: Size, delimiter: &[u8], ) -> Result<usize>

Source

fn write_pattern( &self, pattern: &[u8], count: usize, absolute_position: Size, ) -> Result<usize>

Source

fn write_vectored( &self, buffers: &[&[u8]], absolute_position: Size, ) -> Result<usize>

Source

fn flush(&self) -> Result<()>

Source

fn set_position( &self, _current_position: Size, _position: &Position, ) -> Result<Size>

Source

fn control( &self, _command: ControlCommandIdentifier, _input: &AnyByLayout, _output: &mut AnyByLayout, ) -> Result<()>

Implementors§