diff --git a/tonic-build/src/server.rs b/tonic-build/src/server.rs index 135b0f174..48dd6ef9f 100644 --- a/tonic-build/src/server.rs +++ b/tonic-build/src/server.rs @@ -35,7 +35,7 @@ pub fn generate( if package.is_empty() { "" } else { "." }, service.identifier() ); - let transport = generate_transport(&server_service, &server_trait, &path); + let named = generate_named(&server_service, &server_trait, &path); let mod_attributes = attributes.for_mod(package); let struct_attributes = attributes.for_struct(&path); @@ -160,7 +160,7 @@ pub fn generate( } } - #transport + #named } } } @@ -256,8 +256,7 @@ fn generate_trait_methods( stream } -#[cfg(feature = "transport")] -fn generate_transport( +fn generate_named( server_service: &syn::Ident, server_trait: &syn::Ident, service_name: &str, @@ -265,21 +264,12 @@ fn generate_transport( let service_name = syn::LitStr::new(service_name, proc_macro2::Span::call_site()); quote! { - impl tonic::transport::NamedService for #server_service { + impl tonic::server::NamedService for #server_service { const NAME: &'static str = #service_name; } } } -#[cfg(not(feature = "transport"))] -fn generate_transport( - _server_service: &syn::Ident, - _server_trait: &syn::Ident, - _service_name: &str, -) -> TokenStream { - TokenStream::new() -} - fn generate_methods( service: &T, proto_path: &str, diff --git a/tonic/src/server/mod.rs b/tonic/src/server/mod.rs index c1be1c246..224bb385e 100644 --- a/tonic/src/server/mod.rs +++ b/tonic/src/server/mod.rs @@ -15,3 +15,12 @@ pub use self::grpc::Grpc; pub use self::service::{ ClientStreamingService, ServerStreamingService, StreamingService, UnaryService, }; + +/// A trait to provide a static reference to the service's +/// name. This is used for routing service's within the router. +pub trait NamedService { + /// The `Service-Name` as described [here]. + /// + /// [here]: https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests + const NAME: &'static str; +} diff --git a/tonic/src/transport/server/mod.rs b/tonic/src/transport/server/mod.rs index aa2db0d42..8754b6e2e 100644 --- a/tonic/src/transport/server/mod.rs +++ b/tonic/src/transport/server/mod.rs @@ -10,6 +10,7 @@ mod tls; mod unix; pub use super::service::Routes; +pub use crate::server::NamedService; pub use conn::{Connected, TcpConnectInfo}; #[cfg(feature = "tls")] pub use tls::ServerTlsConfig; @@ -123,15 +124,6 @@ pub struct Router { routes: Routes, } -/// A trait to provide a static reference to the service's -/// name. This is used for routing service's within the router. -pub trait NamedService { - /// The `Service-Name` as described [here]. - /// - /// [here]: https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests - const NAME: &'static str; -} - impl NamedService for Either { const NAME: &'static str = S::NAME; }