@@ -9,6 +9,7 @@ pub(crate) fn generate(service: &Service, proto_path: &str) -> TokenStream {
99
1010 let server_service = quote:: format_ident!( "{}Server" , service. name) ;
1111 let server_trait = quote:: format_ident!( "{}" , service. name) ;
12+ let server_mod = quote:: format_ident!( "{}_server" , service. name. to_ascii_lowercase( ) ) ;
1213 let generated_trait = generate_trait ( service, proto_path, server_trait. clone ( ) ) ;
1314 let service_doc = generate_doc_comments ( & service. comments . leading ) ;
1415
@@ -17,56 +18,62 @@ pub(crate) fn generate(service: &Service, proto_path: &str) -> TokenStream {
1718 let transport = generate_transport ( & server_service, & server_trait, & path) ;
1819
1920 quote ! {
20- #generated_trait
21-
22- #service_doc
23- #[ derive( Debug ) ]
24- #[ doc( hidden) ]
25- pub struct #server_service<T : #server_trait> {
26- inner: Arc <T >,
27- }
21+ /// Generated server implementations.
22+ pub mod #server_mod {
23+ #![ allow( unused_variables, dead_code, missing_docs) ]
24+ use tonic:: codegen:: * ;
25+
26+ #generated_trait
27+
28+ #service_doc
29+ #[ derive( Debug ) ]
30+ #[ doc( hidden) ]
31+ pub struct #server_service<T : #server_trait> {
32+ inner: Arc <T >,
33+ }
2834
29- impl <T : #server_trait> #server_service<T > {
30- pub fn new( inner: T ) -> Self {
31- let inner = Arc :: new( inner) ;
32- Self { inner }
35+ impl <T : #server_trait> #server_service<T > {
36+ pub fn new( inner: T ) -> Self {
37+ let inner = Arc :: new( inner) ;
38+ Self { inner }
39+ }
3340 }
34- }
3541
36- impl <T : #server_trait> Service <http:: Request <HyperBody >> for #server_service<T > {
37- type Response = http:: Response <tonic:: body:: BoxBody >;
38- type Error = Never ;
39- type Future = BoxFuture <Self :: Response , Self :: Error >;
42+ impl <T : #server_trait> Service <http:: Request <HyperBody >> for #server_service<T > {
43+ type Response = http:: Response <tonic:: body:: BoxBody >;
44+ type Error = Never ;
45+ type Future = BoxFuture <Self :: Response , Self :: Error >;
4046
41- fn poll_ready( & mut self , _cx: & mut Context <' _>) -> Poll <Result <( ) , Self :: Error >> {
42- Poll :: Ready ( Ok ( ( ) ) )
43- }
47+ fn poll_ready( & mut self , _cx: & mut Context <' _>) -> Poll <Result <( ) , Self :: Error >> {
48+ Poll :: Ready ( Ok ( ( ) ) )
49+ }
4450
45- fn call( & mut self , req: http:: Request <HyperBody >) -> Self :: Future {
46- let inner = self . inner. clone( ) ;
51+ fn call( & mut self , req: http:: Request <HyperBody >) -> Self :: Future {
52+ let inner = self . inner. clone( ) ;
4753
48- match req. uri( ) . path( ) {
49- #methods
54+ match req. uri( ) . path( ) {
55+ #methods
5056
51- _ => Box :: pin( async move {
52- Ok ( http:: Response :: builder( )
53- . status( 200 )
54- . header( "grpc-status" , "12" )
55- . body( tonic:: body:: BoxBody :: empty( ) )
56- . unwrap( ) )
57- } ) ,
57+ _ => Box :: pin( async move {
58+ Ok ( http:: Response :: builder( )
59+ . status( 200 )
60+ . header( "grpc-status" , "12" )
61+ . body( tonic:: body:: BoxBody :: empty( ) )
62+ . unwrap( ) )
63+ } ) ,
64+ }
5865 }
5966 }
60- }
6167
62- impl <T : #server_trait> Clone for #server_service<T > {
63- fn clone( & self ) -> Self {
64- let inner = self . inner. clone( ) ;
65- Self { inner }
68+ impl <T : #server_trait> Clone for #server_service<T > {
69+ fn clone( & self ) -> Self {
70+ let inner = self . inner. clone( ) ;
71+ Self { inner }
72+ }
6673 }
67- }
6874
69- #transport
75+ #transport
76+ }
7077 }
7178}
7279
0 commit comments