1个不稳定版本
0.1.0 | 2024年4月18日 |
---|
#60 in #prost
用于 prpc
6KB
84 行
prpc_serde_bytes
prpc_serde_bytes
是一个Rust过程宏,旨在与同时使用Serde和Prost crate属性的structs一起工作。具体来说,此宏针对标记有 #[prost(bytes = ""vec"")]
的struct字段,并自动向它们添加 #[serde(with = )]
,以便实现指定的自定义序列化行为。
用法
在您的 Cargo.toml
中将 prpc_serde_bytes
添加为依赖项
[dependencies]
prpc-serde-bytes = "0.1.0"
示例
use prpc_serde_bytes::prpc_serde_bytes;
#[prpc_serde_bytes("::hexed_bytes")]
#[derive(Serialize, Deserialize, prost::Message)]
pub struct Message {
#[prost(bytes = "vec", tag = "1")]
pub encoded: ::prost::alloc::vec::Vec<u8>,
#[prost(uint64, tag = "2")]
pub timestamp: u64,
}
这将生成以下代码
#[derive(Serialize, Deserialize, prost::Message)]
pub struct Message {
#[prost(bytes = "vec", tag = "1")]
#[serde(with = "::hexed_bytes")]
pub encoded: ::prost::alloc::vec::Vec<u8>,
#[prost(uint64, tag = "2")]
pub timestamp: u64,
}
依赖项
~245–670KB
~16K SLoC