* don't replace extern_path'd paths tonic-build will replace all paths except for google well known types with one rooted at the super module. For paths that have already been replaced with a fully qualified path via the extern_path config option, (e.g. "::uuid::Uuid"), this results in an invalid path (e.g. "super::::uuid::Uuid"), and a build failure. These paths should also be excluded when prefixing relative modules with super. * add doc in tonic-build clarifying extern_path extern_path expects fully qualified proto and rust paths * add test cast case for extern path fix add a test that extern path does indeed result in service types using the specified type from an external crate. we test this by creating a service type that has a proto from a different crate, and asserting that it does indeed impl a trait from that crate * add license/publish to extern_path test crates
12 lines
316 B
Rust
12 lines
316 B
Rust
fn main() -> Result<(), std::io::Error> {
|
|
tonic_build::configure()
|
|
.build_server(false)
|
|
.build_client(true)
|
|
.extern_path(".uuid", "::uuid")
|
|
.compile(
|
|
&["service.proto", "uuid.proto"],
|
|
&["../proto/my_application", "../proto/uuid"],
|
|
)?;
|
|
Ok(())
|
|
}
|