pub trait AddressableBuffer<E: ExternalMemory> {
    type ReadBuffer: AsRef<[u8]>;

    // Required methods
    fn total_len(&self) -> usize;
    fn read_slice(
        &self,
        ext_memory: &mut E,
        position: usize,
        slice_len: usize
    ) -> Result<Self::ReadBuffer, BufferError<E>>;
    fn limit_length(&self, new_len: usize) -> Self;

    // Provided method
    fn read_byte(
        &self,
        ext_memory: &mut E,
        position: usize
    ) -> Result<u8, BufferError<E>> { ... }
}

Required Associated Types§

Required Methods§

source

fn total_len(&self) -> usize

source

fn read_slice( &self, ext_memory: &mut E, position: usize, slice_len: usize ) -> Result<Self::ReadBuffer, BufferError<E>>

source

fn limit_length(&self, new_len: usize) -> Self

Provided Methods§

source

fn read_byte( &self, ext_memory: &mut E, position: usize ) -> Result<u8, BufferError<E>>

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a, E: ExternalMemory> AddressableBuffer<E> for &'a [u8]

§

type ReadBuffer = &'a [u8]

source§

fn total_len(&self) -> usize

source§

fn read_slice( &self, _ext_memory: &mut E, position: usize, slice_len: usize ) -> Result<Self::ReadBuffer, BufferError<E>>

source§

fn limit_length(&self, new_len: usize) -> Self

Implementors§