1 个不稳定版本

0.1.0 2024年7月12日

#1960编码

Download history 75/week @ 2024-07-07 37/week @ 2024-07-14 6/week @ 2024-07-21 11/week @ 2024-07-28

79 每月下载量
4 个crate中(3个直接)使用

MIT/Apache

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