Skip to main content

MemoryRead

Trait MemoryRead 

pub trait MemoryRead {
    // Required methods
    fn read(&mut self, data: &mut [u8]) -> Result<&mut Self, AccessError>;
    fn skip(&mut self, len: usize) -> Result<&mut Self, AccessError>;
    fn len(&self) -> usize;

    // Provided methods
    fn read_plain<T>(&mut self) -> Result<T, AccessError>
       where T: IntoBytes + FromBytes + Immutable + KnownLayout { ... }
    fn read_n<T>(&mut self, len: usize) -> Result<Vec<T>, AccessError>
       where T: IntoBytes + FromBytes + Immutable + KnownLayout + Copy { ... }
    fn read_all(&mut self) -> Result<Vec<u8>, AccessError> { ... }
    fn limit(self, len: usize) -> Limit<Self>
       where Self: Sized { ... }
}

Required Methods§

fn read(&mut self, data: &mut [u8]) -> Result<&mut Self, AccessError>

fn skip(&mut self, len: usize) -> Result<&mut Self, AccessError>

fn len(&self) -> usize

Provided Methods§

fn read_plain<T>(&mut self) -> Result<T, AccessError>
where T: IntoBytes + FromBytes + Immutable + KnownLayout,

fn read_n<T>(&mut self, len: usize) -> Result<Vec<T>, AccessError>
where T: IntoBytes + FromBytes + Immutable + KnownLayout + Copy,

fn read_all(&mut self) -> Result<Vec<u8>, AccessError>

fn limit(self, len: usize) -> Limit<Self>
where Self: Sized,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl MemoryRead for &[u8]

§

fn read(&mut self, data: &mut [u8]) -> Result<&mut &[u8], AccessError>

§

fn skip(&mut self, len: usize) -> Result<&mut &[u8], AccessError>

§

fn len(&self) -> usize

Implementors§

Source§

impl MemoryRead for PagedRangeReader<'_>

Source§

impl<'a, T: Iterator<Item = PagedRange<'a>>> MemoryRead for PagedRangesReader<'a, T>

§

impl<T> MemoryRead for Limit<T>
where T: MemoryRead,