2 Macros 1.1 implementing #[derive(Pread, Pwrite)] for https://github.com/m4b/scroll
4 Add derive annotations to your POD seamlessly and easily:
9 extern crate scroll_derive;
11 #[derive(Debug, PartialEq, Pread, Pwrite, IOread, IOwrite, SizeWith)]
19 use scroll::{Pread, Pwrite, Cread, LE};
22 let bytes = [0xefu8, 0xbe, 0xad, 0xde, 0, 0, 0, 0, 0, 0, 224, 63, 0xad, 0xde, 0xef, 0xbe];
23 let data: Data = bytes.pread_with(0, LE).unwrap();
24 println!("data: {:?}", &data);
25 assert_eq!(data.id, 0xdeadbeefu32);
26 let mut bytes2 = vec![0; ::std::mem::size_of::<Data>()];
27 bytes2.pwrite_with(data, 0, LE).unwrap();
28 let data: Data = bytes.pread_with(0, LE).unwrap();
29 let data2: Data = bytes2.pread_with(0, LE).unwrap();
30 assert_eq!(data, data2);
32 let data: Data = bytes.cread_with(0, LE);
33 assert_eq!(data, data2);