diff --git a/Cargo.toml b/Cargo.toml index 9fd8d2f99..f05cc4fab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,7 @@ members = [ # Tests "tests/included_service", "tests/same_name", + "tests/service_named_service", "tests/wellknown", "tests/wellknown-compiled", "tests/extern_path/uuid", diff --git a/tests/service_named_service/Cargo.toml b/tests/service_named_service/Cargo.toml new file mode 100644 index 000000000..573b049dc --- /dev/null +++ b/tests/service_named_service/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "service_named_service" +version = "0.1.0" +authors = ["Lucio Franco "] +edition = "2018" +publish = false +license = "MIT" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +tonic = { path = "../../tonic" } +prost = "0.8" + +[build-dependencies] +tonic-build = { path = "../../tonic-build" } diff --git a/tests/service_named_service/build.rs b/tests/service_named_service/build.rs new file mode 100644 index 000000000..ba5ab11cf --- /dev/null +++ b/tests/service_named_service/build.rs @@ -0,0 +1,3 @@ +fn main() { + tonic_build::compile_protos("proto/foo.proto").unwrap(); +} diff --git a/tests/service_named_service/proto/foo.proto b/tests/service_named_service/proto/foo.proto new file mode 100644 index 000000000..6ca5b4864 --- /dev/null +++ b/tests/service_named_service/proto/foo.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + +package foo; + +service Service { + rpc Foo(stream FooRequest) returns (stream FooResponse) {} +} + +message FooRequest {} + +message FooResponse {} diff --git a/tests/service_named_service/src/lib.rs b/tests/service_named_service/src/lib.rs new file mode 100644 index 000000000..0c5549a13 --- /dev/null +++ b/tests/service_named_service/src/lib.rs @@ -0,0 +1,3 @@ +pub mod pb { + tonic::include_proto!("foo"); +} diff --git a/tonic-build/src/client.rs b/tonic-build/src/client.rs index d3c109ff4..7eaa09417 100644 --- a/tonic-build/src/client.rs +++ b/tonic-build/src/client.rs @@ -69,11 +69,11 @@ pub fn generate( pub fn with_interceptor(inner: T, interceptor: F) -> #service_ident> where F: FnMut(tonic::Request<()>) -> Result, tonic::Status>, - T: Service< + T: tonic::codegen::Service< http::Request, Response = http::Response<>::ResponseBody> >, - >>::Error: Into + Send + Sync, + >>::Error: Into + Send + Sync, { #service_ident::new(InterceptedService::new(inner, interceptor)) } diff --git a/tonic-build/src/server.rs b/tonic-build/src/server.rs index 5feb816fc..1b2f61f73 100644 --- a/tonic-build/src/server.rs +++ b/tonic-build/src/server.rs @@ -112,7 +112,7 @@ pub fn generate( #configure_compression_methods } - impl Service> for #server_service + impl tonic::codegen::Service> for #server_service where T: #server_trait, B: Body + Send + Sync + 'static,