byte-chisel 0.2.1

A library for decoding byte-streams into data structures
Documentation
use byte_chisel::*;

#[test]
fn chisel_from_array() {
	let data = [ 0x81, 0u8, 0x27, 0x91, 0xAF, 0x83 ];

	let mut chisel = Chisel::from_array(&data);
	let mut chisel = chisel.little_endian();
	assert_eq!(chisel.u8().unwrap(), 0x81);
	assert_eq!(chisel.u8().unwrap(), 0x00);
	assert_eq!(chisel.u32().unwrap(), 0x83AF9127);
	assert!(matches!(chisel.u8(), Err(ChiselError { offset: 6, error: ChiselErrorData::EndOfInput })))
}

#[cfg(feature = "std")]
#[test]
fn chisel_buf_read() {
	use std::io::BufReader;

	let data = [ 0x81, 0u8, 0x27, 0x91, 0xAF, 0x83 ];
	let mut reader = BufReader::new(&data[..]);

	let mut chisel = Chisel::from_buf_read(&mut reader);
	let mut chisel = chisel.little_endian();
	assert_eq!(chisel.u8().unwrap(), 0x81);
	assert_eq!(chisel.u8().unwrap(), 0x00);
	assert_eq!(chisel.u32().unwrap(), 0x83AF9127);
	assert!(matches!(chisel.u8(), Err(ChiselError { offset: 6, error: ChiselErrorData::EndOfInput })))
}