10个版本
| 0.2.8 | 2023年8月24日 |
|---|---|
| 0.2.7 | 2023年8月11日 |
| 0.1.1 | 2023年8月2日 |
#1195 在 编码
每月 92 下载
22KB
450 行
Lightpack
轻量级的无std二进制序列化库。
示例
Lightpack提供了可推导的特质用于编码(Pack)和解码(Unpack),以及确定类型编码大小(Size)
#[derive(Size, Pack, Unpack, Debug)]
struct Point {
x: i16,
y: i16,
}
要编码,调用pack并传入字节序(例如lightpack::byteorder::BigEndian)对一个&[u8]切片进行编码
let mut buffer = [0u8; Point::SIZE];
Point { x: 3, y: 4 }.pack::<BigEndian>(&mut buffer);
// => buffer == [0, 3, 0, 4]
要解码,调用unpack对一个&[u8]切片进行解码
Point::unpack::<BigEndian>(&[0, 3, 0, 4]).unwrap()
// => Point { x: 3, y: 4 }
要查看完整的示例,请查看examples/point.rs。
依赖
~0.3–0.8MB
~19K SLoC