Bug 1888590 - Mark some subtests on trusted-types-event-handlers.html as failing...
[gecko.git] / third_party / rust / scroll_derive / README.md
bloba7f7e85f0e7d46ce139cde6573fa66d13a342225
1 # scroll_derive
2 Macros 1.1 implementing #[derive(Pread, Pwrite)] for https://github.com/m4b/scroll
4 Add derive annotations to your POD seamlessly and easily:
6 ```rust
7 extern crate scroll;
8 #[macro_use]
9 extern crate scroll_derive;
11 #[derive(Debug, PartialEq, Pread, Pwrite, IOread, IOwrite, SizeWith)]
12 #[repr(C)]
13 struct Data {
14     id: u32,
15     timestamp: f64,
16     arr: [u16; 2],
19 use scroll::{Pread, Pwrite, Cread, LE};
21 fn main (){
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);
35 ```