11 个稳定版本
2.2.0 | 2021 年 8 月 25 日 |
---|---|
2.1.1 | 2021 年 4 月 1 日 |
2.1.0 |
|
1.4.1 | 2020 年 11 月 11 日 |
1.0.2 | 2020 年 7 月 15 日 |
#433 in Rust 模式
53,687 每月下载量
用于 235 个 crate (34 直接)
115KB
2K SLoC
binread
A Rust crate for helping parse structs from binary data using ✨macro magic✨
用法
BinRead 使用 derive 宏来声明性地定义结构体的二进制解析方法。
#[derive(BinRead)]
#[br(magic = b"DOG", assert(name.len() != 0))]
struct Dog {
bone_pile_count: u8,
#[br(big, count = bone_pile_count)]
bone_piles: Vec<u16>,
#[br(align_before = 0xA)]
name: NullString
}
let mut reader = Cursor::new(b"DOG\x02\x00\x01\x00\x12\0\0Rudy\0");
let dog: Dog = reader.read_ne().unwrap();
assert_eq!(dog.bone_piles, &[0x1, 0x12]);
assert_eq!(dog.name.into_string(), "Rudy")
依赖
~1.5MB
~36K SLoC