Trait bitreader::ReadInto [] [src]

pub trait ReadInto where Self: Sized {
    fn read(reader: &mut BitReader, bits: u8) -> Result<Self>;
}

Helper trait to allow reading bits into a variable without explicitly mentioning its type.

If you can't or want, for some reason, to use BitReader's read methods (read_u8 etc.) but want to rely on type inference instead, you can use the ReadInto trait. The trait is implemented for all basic integer types (8/16/32/64 bits, signed/unsigned) and the boolean type.

use bitreader::{BitReader,ReadInto};

let slice_of_u8 = &[0b1110_0000];
let mut reader = BitReader::new(slice_of_u8);

struct Foo {
    bar: u8,
    valid: bool,
}

// No type mentioned here, instead the type of bits is inferred from the type of Foo::bar,
// and consequently the correct "overload" is used.
let bits = ReadInto::read(&mut reader, 2).unwrap();
let valid = ReadInto::read(&mut reader, 1).unwrap();

let foo = Foo { bar: bits, valid: valid };
assert_eq!(foo.bar, 3);
assert!(foo.valid);

Required Methods

Implementors