1 个不稳定版本
0.1.0 | 2024年7月12日 |
---|
#1960 在 编码
79 每月下载量
在 4 个crate中(3个直接)使用
52KB
2K SLoC
Protopuffer
一个用于在protobuf格式中编码和解码数据的库。支持派生。
示例
use protopuffer::{EncodeMessage, DecodeMessage, from_slice, to_vec};
#[derive(Debug, PartialEq, Eq, EncodeMessage, DecodeMessage)]
struct MyData {
#[field(1)]
s: String,
#[field(5)]
items: Vec<Item>
}
#[derive(Debug, PartialEq, Eq, EncodeMessage, DecodeMessage)]
struct Item {
#[field(1)]
name: String,
#[field(2)]
value: u32
}
// get the data as bytes
let mut data = MyData {
s: "data".into(),
items: vec![
Item {
name: "1".into(),
value: 1
},
Item {
name: "2".into(),
value: 2
}
]
};
let bytes = to_vec(&mut data).unwrap();
let n_data = from_slice(&bytes).unwrap();
assert_eq!(data, n_data);
依赖项
~3MB
~58K SLoC