From 79c248aae07724bbdca01bb574f563d1acc53204 Mon Sep 17 00:00:00 2001 From: James Nugent Date: Thu, 19 Mar 2020 11:57:24 -0500 Subject: [PATCH] Allow non_camel_case_types on some codegen structs This commit adjusts the code generation for the internal structs in the implementation of Service> for *Server in order to annotate internal structs whose names are derived from gRPC method names with `[allow(non_camel_case_types)]`. This supresses compiler warnings about type names when compiling generated code. The struct names are not exposed externally, so this has no impact on types seen by library consumers. Fixes #295. --- tonic-build/src/server.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tonic-build/src/server.rs b/tonic-build/src/server.rs index cf6e23782..105494321 100644 --- a/tonic-build/src/server.rs +++ b/tonic-build/src/server.rs @@ -259,6 +259,7 @@ fn generate_unary<'a, T: Method<'a>>( let (request, response) = method.request_response_name(context); quote! { + #[allow(non_camel_case_types)] struct #service_ident(pub Arc); impl tonic::server::UnaryService<#request> for #service_ident { @@ -310,6 +311,7 @@ fn generate_server_streaming<'a, T: Method<'a>>( let response_stream = quote::format_ident!("{}Stream", method.identifier()); quote! { + #[allow(non_camel_case_types)] struct #service_ident(pub Arc); impl tonic::server::ServerStreamingService<#request> for #service_ident { @@ -360,6 +362,7 @@ fn generate_client_streaming<'a, T: Method<'a>>( let codec_name = syn::parse_str::(context.codec_name()).unwrap(); quote! { + #[allow(non_camel_case_types)] struct #service_ident(pub Arc); impl tonic::server::ClientStreamingService<#request> for #service_ident @@ -413,6 +416,7 @@ fn generate_streaming<'a, T: Method<'a>>( let response_stream = quote::format_ident!("{}Stream", method.identifier()); quote! { + #[allow(non_camel_case_types)] struct #service_ident(pub Arc); impl tonic::server::StreamingService<#request> for #service_ident