10个版本

0.2.8 2023年8月24日
0.2.7 2023年8月11日
0.1.1 2023年8月2日

#1195编码

Download history

每月 92 下载

MIT 许可证

22KB
450

Lightpack

crates.io Build docs.rs

轻量级的无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