Expand description
A set of prost helper functions to make prost generated code easy to work with.
If you use prost-serde to build your protobuf files, mostly you need this crate to provide
functions for is_zero and deserialize_null_default.
You can also use the macros to convert protobuf messages to / try_from Vec<u8>.
For example, if prost generated a data struct Hello, You can use the macros to generate
From and /TryFrom respectively, and then use them:
ⓘ
use prost_helper::{prost_into_vec, vec_try_into_prost};
use prost::Message;
#[derive(Clone, PartialEq, Eq, prost::Message)]
pub struct Hello {
#[prost(string, tag = "1")]
pub msg: String,
}
prost_into_vec!(Hello, 32);
vec_try_into_prost!(Hello);
fn send_hello(data: Vec<u8>) {
unimplemented!();
}
let hello = Hello::default();
send_hello(hello.into());Modules§
Macros§
- bytes_
try_ into_ prost - prost_
into_ bytes - prost_
into_ vec - Generate
FromandIntofor your prost message. - prost_
to_ json - vec_
try_ into_ prost - Generate
TryFromandTryIntofor your prost message fromVec<u8>.
Traits§
- ToJson
- Convert the prost message to JSON string for debugging purpose. Need serde_json support.
Functions§
- deserialize_
buf_ bytes - deserialize_
buf_ vec - deserialize_
id_ bytes - deserialize_
id_ vec - deserialize_
null_ default - customized deserialize function to use default for JSON null value.
- deserialize_
repeat_ buf_ bytes - deserialize_
repeat_ buf_ vec - deserialize_
repeat_ id_ bytes - deserialize_
repeat_ id_ vec - is_zero
- customized skip_serializing_if function to skip 0 for numbers.
- serialize_
buf - serialize_
id - serialize_
repeat_ buf - serialize_
repeat_ id