aboutsummaryrefslogtreecommitdiff
path: root/mingling_macros/src
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-04-15 12:50:20 +0800
committer魏曹先生 <1992414357@qq.com>2026-04-15 12:50:20 +0800
commit41fda77f7bb262c97c3e1d8937be8b1c1716a26f (patch)
tree07f07d6e2b7fa222934492d944483f563c05710b /mingling_macros/src
parentf029a51c1dd308ff8271c2be37d0fdc053552310 (diff)
Remove unnecessary string conversions in macro type registration
Diffstat (limited to 'mingling_macros/src')
-rw-r--r--mingling_macros/src/chain.rs6
-rw-r--r--mingling_macros/src/lib.rs4
-rw-r--r--mingling_macros/src/renderer.rs5
3 files changed, 6 insertions, 9 deletions
diff --git a/mingling_macros/src/chain.rs b/mingling_macros/src/chain.rs
index cf91738..84353e9 100644
--- a/mingling_macros/src/chain.rs
+++ b/mingling_macros/src/chain.rs
@@ -4,7 +4,7 @@
//! generating structs that implement the `Chain` trait from async functions.
use proc_macro::TokenStream;
-use quote::{ToTokens, quote};
+use quote::quote;
use syn::spanned::Spanned;
use syn::{
FnArg, Ident, ItemFn, Pat, PatType, ReturnType, Signature, Type, TypePath, parse_macro_input,
@@ -122,8 +122,6 @@ pub fn chain_attr(attr: TokenStream, item: TokenStream) -> TokenStream {
let pascal_case_name = just_fmt::pascal_case!(fn_name.to_string());
let struct_name = Ident::new(&pascal_case_name, fn_name.span());
- let previous_type_str = previous_type.to_token_stream().to_string();
-
// Generate the struct and implementation
let expanded = if use_crate_prefix {
quote! {
@@ -131,7 +129,7 @@ pub fn chain_attr(attr: TokenStream, item: TokenStream) -> TokenStream {
#[doc(hidden)]
#vis struct #struct_name;
- ::mingling::macros::register_type!(#previous_type_str);
+ ::mingling::macros::register_type!(#previous_type);
impl ::mingling::Chain<ThisProgram> for #struct_name {
type Previous = #previous_type;
diff --git a/mingling_macros/src/lib.rs b/mingling_macros/src/lib.rs
index ffcf7e9..9276fca 100644
--- a/mingling_macros/src/lib.rs
+++ b/mingling_macros/src/lib.rs
@@ -172,8 +172,8 @@ pub fn program_gen_completion(input: TokenStream) -> TokenStream {
/// This macro is used internally by the `#[chain]` and `#[renderer]` attribute macros
#[proc_macro]
pub fn register_type(input: TokenStream) -> TokenStream {
- let type_entry = parse_macro_input!(input as syn::LitStr);
- let entry_str = type_entry.value();
+ let type_ident = parse_macro_input!(input as syn::Ident);
+ let entry_str = type_ident.to_string();
PACKED_TYPES.lock().unwrap().insert(entry_str);
diff --git a/mingling_macros/src/renderer.rs b/mingling_macros/src/renderer.rs
index dc00bc9..0f477ee 100644
--- a/mingling_macros/src/renderer.rs
+++ b/mingling_macros/src/renderer.rs
@@ -4,7 +4,7 @@
//! generating structs that implement the `Renderer` trait from functions.
use proc_macro::TokenStream;
-use quote::{ToTokens, quote};
+use quote::quote;
use syn::spanned::Spanned;
use syn::{FnArg, ItemFn, Pat, PatType, ReturnType, Signature, Type, TypePath, parse_macro_input};
@@ -114,7 +114,6 @@ pub fn renderer_attr(item: TokenStream) -> TokenStream {
let renderer_entry_str = renderer_entry.to_string();
let renderer_exist_entry_str = renderer_exist_entry.to_string();
- let previous_type_str = previous_type.to_token_stream().to_string();
#[cfg(feature = "general_renderer")]
let general_renderer_entry_str = general_renderer_entry.to_string();
@@ -132,7 +131,7 @@ pub fn renderer_attr(item: TokenStream) -> TokenStream {
#[doc(hidden)]
#vis struct #struct_name;
- ::mingling::macros::register_type!(#previous_type_str);
+ ::mingling::macros::register_type!(#previous_type);
impl ::mingling::Renderer for #struct_name {
type Previous = #previous_type;