Trait R

Source
pub trait R: Read {
    // Required method
    fn r<T: Readable>(&mut self) -> Result<T>;

    // Provided method
    fn b(&mut self) -> Result<u8> { ... }
}
Expand description

Read little endian (commonly native) data. This trait provides a r method for easy reading.

Without this crate, you would have to do things such as:

use std::io::Read;
let mut data = &mut &[0xff, 0xf1][..];
let mut two_bytes = [0; 2];
data.read(&mut two_bytes).unwrap();
assert_eq!(u16::from_le_bytes(two_bytes), 0xf1ff)

Now, you can simply:

use raad::le::*;
let mut data = &mut &[0xff, 0xf1][..];
assert_eq!(data.r::<u16>().unwrap(), 0xf1ff);

Required Methods§

Source

fn r<T: Readable>(&mut self) -> Result<T>

Read a little endian type.

use raad::le::*;
let mut data = &mut &[0xc1, 0x00, 0x7c, 0xff][..];
assert_eq!(data.r::<[i16; 2]>().unwrap(), [0x00c1, 0xff7c]);

Provided Methods§

Source

fn b(&mut self) -> Result<u8>

Reads one byte out of a Reader.

use raad::ne::*;
let mut d = &mut &[1u8, 2][..];
assert_eq!(d.b().unwrap(), 1);
assert_eq!(d.b().unwrap(), 2);
assert!(d.b().is_err());

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.

Implementors§