Trait Source

Source
pub trait Source {
    type Error: Debug;

    // Required method
    fn read(&self, offset: u32, buffer: &mut [u8]) -> Result<(), Self::Error>;

    // Provided methods
    fn read_u32_be(&self, offset: u32) -> Result<u32, Self::Error> { ... }
    fn read_u32_le(&self, offset: u32) -> Result<u32, Self::Error> { ... }
    fn read_u16_be(&self, offset: u32) -> Result<u16, Self::Error> { ... }
    fn read_u16_le(&self, offset: u32) -> Result<u16, Self::Error> { ... }
    fn read_u8(&self, offset: u32) -> Result<u8, Self::Error> { ... }
}
Expand description

Describes something we can read data from

Required Associated Types§

Required Methods§

Source

fn read(&self, offset: u32, buffer: &mut [u8]) -> Result<(), Self::Error>

Read some bytes from the source.

The bytes are read from the given offset, and there must be enough data to fill buffer completely, otherwise an error is returned.

Provided Methods§

Source

fn read_u32_be(&self, offset: u32) -> Result<u32, Self::Error>

Read a 32-bit big-endian value.

Source

fn read_u32_le(&self, offset: u32) -> Result<u32, Self::Error>

Read a 32-bit little-endian value.

Source

fn read_u16_be(&self, offset: u32) -> Result<u16, Self::Error>

Read a 16-bit big-endian value.

Source

fn read_u16_le(&self, offset: u32) -> Result<u16, Self::Error>

Read a 16-bit little-endian value.

Source

fn read_u8(&self, offset: u32) -> Result<u8, Self::Error>

Read an 8-bit value.

Implementations on Foreign Types§

Source§

impl Source for &[u8]

Source§

type Error = SliceError

Source§

fn read(&self, offset: u32, buffer: &mut [u8]) -> Result<(), Self::Error>

Implementors§