Tho*_*phy 2 protocol-buffers rust tonic grpc
关于 gRPC codegen 和 tonic(使用 protoc)的问题。
我使用的第三方原型的包名称如下thirdparty.specificpackage,例如:
syntax = "proto3";
package thirdparty.common;
import "google/protobuf/empty.proto";
import "google/protobuf/wrappers.proto";
service CommonService {
...
}
Run Code Online (Sandbox Code Playgroud)
和一个build.rs看起来像这样的:
tonic_build::configure()
.protoc_arg("--experimental_allow_proto3_optional") // for older systems
.build_client(true)
.build_server(true)
.out_dir("./src")
.compile(
&[
"src/myprotoproject/protos/services/decision_engine.proto"],
&["src"],
)?;
Run Code Online (Sandbox Code Playgroud)
我生成的代码cargo build被命名thirdparty.common.rs- 如何将其导入到我的 Rust 代码中?
mod thirdparty.common不是有效的 Rust 标识符,因为.- 是否有最佳实践?
如果无法合理控制或更改文件名,可以使用路径属性:
#[path = "thirdparty.common.rs"]
mod thirdparty_common;
Run Code Online (Sandbox Code Playgroud)