| Crates.io | fire-protobuf |
| lib.rs | fire-protobuf |
| version | 0.1.5 |
| created_at | 2023-01-16 22:05:03.619184+00 |
| updated_at | 2023-10-31 00:13:10.937678+00 |
| description | Rust only protobuf implementation |
| homepage | |
| repository | https://github.com/fire-lib/fire-stream |
| max_upload_size | |
| id | 760622 |
| size | 51,714 |
A library to encode and decode data in the protobuf format. Supports derive.
use fire_protobuf::{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);