diff --git a/tonic-build/src/client.rs b/tonic-build/src/client.rs index 81f75b8..8bb8e60 100644 --- a/tonic-build/src/client.rs +++ b/tonic-build/src/client.rs @@ -1,7 +1,7 @@ use std::collections::HashSet; use super::{Attributes, Method, Service}; -use crate::{generate_doc_comments, naive_snake_case}; +use crate::{format_method_name, generate_doc_comments, naive_snake_case}; use proc_macro2::TokenStream; use quote::{format_ident, quote}; @@ -190,13 +190,7 @@ fn generate_methods( method.identifier() ); - if !disable_comments.contains(&format!( - "{}{}{}.{}", - package, - if package.is_empty() { "" } else { "." }, - service.identifier(), - method.identifier() - )) { + if !disable_comments.contains(&format_method_name(package, service, method)) { stream.extend(generate_doc_comments(method.comment())); } diff --git a/tonic-build/src/lib.rs b/tonic-build/src/lib.rs index acc3201..fe3380a 100644 --- a/tonic-build/src/lib.rs +++ b/tonic-build/src/lib.rs @@ -197,6 +197,20 @@ impl Attributes { } } +fn format_method_name( + package: &str, + service: &T, + method: &::Method, +) -> String { + format!( + "{}{}{}.{}", + package, + if package.is_empty() { "" } else { "." }, + service.identifier(), + method.identifier() + ) +} + // Generates attributes given a list of (`pattern`, `attribute`) pairs. If `pattern` matches `name`, `attribute` will be included. fn generate_attributes<'a>( name: &str, @@ -218,7 +232,7 @@ fn generate_attributes<'a>( fn generate_doc_comment>(comment: S) -> TokenStream { let comment = comment.as_ref(); - let comment = if !comment.starts_with(" ") { + let comment = if !comment.starts_with(' ') { format!(" {}", comment) } else { comment.to_string() diff --git a/tonic-build/src/server.rs b/tonic-build/src/server.rs index 40bf62f..99a204b 100644 --- a/tonic-build/src/server.rs +++ b/tonic-build/src/server.rs @@ -1,7 +1,7 @@ use std::collections::HashSet; use super::{Attributes, Method, Service}; -use crate::{generate_doc_comment, generate_doc_comments, naive_snake_case}; +use crate::{format_method_name, generate_doc_comment, generate_doc_comments, naive_snake_case}; use proc_macro2::{Span, TokenStream}; use quote::quote; use syn::{Ident, Lit, LitStr}; @@ -239,13 +239,8 @@ fn generate_trait_methods( let (req_message, res_message) = method.request_response_name(proto_path, compile_well_known_types); - let method_doc = if disable_comments.contains(&format!( - "{}{}{}.{}", - package, - if package.is_empty() { "" } else { "." }, - service.identifier(), - method.identifier() - )) { + let method_doc = if disable_comments.contains(&format_method_name(package, service, method)) + { TokenStream::new() } else { generate_doc_comments(method.comment())