]>
Commit | Line | Data |
---|---|---|
f035d41b XL |
1 | use scroll_derive::{Pread, Pwrite, IOread, IOwrite, SizeWith}; |
2 | ||
3 | #[derive(Debug, PartialEq, Pread, Pwrite, IOread, IOwrite, SizeWith)] | |
4 | #[repr(C)] | |
5 | struct Data { | |
6 | id: u32, | |
7 | timestamp: f64, | |
8 | arr: [u16; 2], | |
9 | } | |
10 | ||
11 | use scroll::{Pread, Pwrite, Cread, LE}; | |
12 | ||
13 | fn main () { | |
14 | let bytes = [0xefu8, 0xbe, 0xad, 0xde, 0, 0, 0, 0, 0, 0, 224, 63, 0xad, 0xde, 0xef, 0xbe]; | |
15 | let data: Data = bytes.pread_with(0, LE).unwrap(); | |
16 | println!("data: {:?}", &data); | |
17 | assert_eq!(data.id, 0xdeadbeefu32); | |
18 | let mut bytes2 = vec![0; ::std::mem::size_of::<Data>()]; | |
19 | bytes2.pwrite_with(data, 0, LE).unwrap(); | |
20 | let data: Data = bytes.pread_with(0, LE).unwrap(); | |
21 | let data2: Data = bytes2.pread_with(0, LE).unwrap(); | |
22 | assert_eq!(data, data2); | |
23 | ||
24 | let data: Data = bytes.cread_with(0, LE); | |
25 | assert_eq!(data, data2); | |
26 | } |