#prost #msg #protoc #fail #prost-build #buffer #protocols

prost-msg-build

适用于 Rust 语言的 Protocol Buffers 实现

5 个版本

0.2.0 2023 年 3 月 23 日
0.1.6 2023 年 1 月 6 日
0.1.5 2022 年 5 月 12 日
0.1.4 2022 年 4 月 22 日

#1335 in 编码

Download history 2/week @ 2024-03-10 8/week @ 2024-03-31

68 每月下载次数

Apache-2.0

155KB
3K SLoC

Documentation Crate

prost-msg-build

使用 msg id 构建 prost 结构以实现类型判断

message Fail{
   enum MsgId {  None=0;Id = 150002; }
   int64 number=1;
   string message=2;
}

自动实现 MsgId 和 const fn

#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Fail {
    #[prost(int64, tag = "1")]
    pub number: i64,
    #[prost(string, tag = "2")]
    pub message: ::prost::alloc::string::String,
}

#[allow(dead_code)]
pub const FAIL_ID: i32 = Fail::get_msg_id();

impl Fail {
    #[allow(dead_code)]
    pub const fn get_msg_id() -> i32 {
        150002
    }
}

impl ::prost_msg_id::MsgId for Fail {
    fn get_msg_id(&self) -> i32 {
        Self::get_msg_id()
    }
}

///get all msg type id
#[allow(dead_code)]
pub const fn msg_ids()->&'static [i32]{
    &[
        150002, //.RunTT.Fail
    ]
}

关于 prost-build

prost-build

prost-build 通过 Cargo 构建,使得从 .proto 文件生成 Rust 代码变得简单。请参阅 文档 了解如何将 prost-build 集成到 Cargo 项目中。

protoc

prost-build 使用 protoc 解析 proto 文件。有两种方式让 protocprost-build 可用:

  • 在您的 PATH 中包含 protoc。这可以通过遵循 protoc 安装说明 完成。
  • 使用 PROTOC=<my/path/to/protoc> 环境变量传递 protoc 的路径。

许可证

prost-build 在 Apache 许可证(版本 2.0)的条款下分发。

有关详细信息,请参阅 LICENSE

版权所有 2017 Dan Burkert

依赖项

~8–20MB
~269K SLoC