21个不稳定版本
0.12.0 | 2024年1月1日 |
---|---|
0.11.1 | 2023年6月19日 |
0.11.0 | 2022年1月2日 |
0.10.5 | 2021年1月25日 |
0.3.0 | 2017年3月15日 |
#4 在 #pwrite 中
556,823 每月下载量
用于 81 个crate (6个直接使用)
22KB
507 代码行
scroll_derive
实现#[derive(Pread, Pwrite)]的Macros 1.1,针对https://github.com/m4b/scroll
无缝、简单地添加derive注释到你的POD中
extern crate scroll;
#[macro_use]
extern crate scroll_derive;
#[derive(Debug, PartialEq, Pread, Pwrite, IOread, IOwrite, SizeWith)]
#[repr(C)]
struct Data {
id: u32,
timestamp: f64,
arr: [u16; 2],
}
use scroll::{Pread, Pwrite, Cread, LE};
fn main (){
let bytes = [0xefu8, 0xbe, 0xad, 0xde, 0, 0, 0, 0, 0, 0, 224, 63, 0xad, 0xde, 0xef, 0xbe];
let data: Data = bytes.pread_with(0, LE).unwrap();
println!("data: {data:?}");
assert_eq!(data.id, 0xdeadbeefu32);
let mut bytes2 = vec![0; ::std::mem::size_of::<Data>()];
bytes2.pwrite_with(data, 0, LE).unwrap();
let data: Data = bytes.pread_with(0, LE).unwrap();
let data2: Data = bytes2.pread_with(0, LE).unwrap();
assert_eq!(data, data2);
let data: Data = bytes.cread_with(0, LE);
assert_eq!(data, data2);
}
依赖项
~300–760KB
~18K SLoC