chore: Internal refactor to remove repeitition (#1144)

This commit is contained in:
bouzuya
2022-12-01 04:32:49 +09:00
committed by GitHub
parent 5c8a5d709c
commit 95e8c8bdbb
3 changed files with 20 additions and 17 deletions
+2 -8
View File
@@ -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<T: Service>(
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()));
}
+15 -1
View File
@@ -197,6 +197,20 @@ impl Attributes {
}
}
fn format_method_name<T: Service>(
package: &str,
service: &T,
method: &<T as Service>::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<S: AsRef<str>>(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()
+3 -8
View File
@@ -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<T: Service>(
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())