Trait DekuContainerRead

Source
pub trait DekuContainerRead<'a>: DekuReader<'a, ()> {
    // Required methods
    fn from_reader<R: Read + Seek>(
        input: (&'a mut R, usize),
    ) -> Result<(usize, Self), DekuError>
       where Self: Sized;
    fn from_bytes(
        input: (&'a [u8], usize),
    ) -> Result<((&'a [u8], usize), Self), DekuError>
       where Self: Sized;
}
Expand description

“Reader” trait: implemented on DekuRead struct and enum containers. A container is a type which doesn’t need any context information.

Required Methods§

Source

fn from_reader<R: Read + Seek>( input: (&'a mut R, usize), ) -> Result<(usize, Self), DekuError>
where Self: Sized,

Construct type from Reader implementing no_std_io::Read.

  • input - Input given as “Reader” and bit offset
§Returns

(amount of total bits read, Self)

§Example
#[derive(Debug, DekuRead, DekuWrite, PartialEq, Eq, Clone)]
#[deku(endian = "big")]
struct EcHdr {
    magic: [u8; 4],
    version: u8,
}

let mut file = File::options().read(true).open(“file”).unwrap(); file.seek(SeekFrom::Start(0)).unwrap(); let ec = EcHdr::from_reader((&mut file, 0)).unwrap();

Source

fn from_bytes( input: (&'a [u8], usize), ) -> Result<((&'a [u8], usize), Self), DekuError>
where Self: Sized,

Read bytes and construct type

  • input - Input given as data and bit offset

Returns the remaining bytes and bit offset after parsing in addition to Self.

Implementors§