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