diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-05-16 22:17:38 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-05-16 22:17:38 +0800 |
| commit | 05d07bbc627b59fd07a8764a972b4aac63a46f53 (patch) | |
| tree | 3ac865155220ce798964f1e0c95575e6dc0c5e9f /mingling_macros/src/groupped.rs | |
| parent | c48149a86eafcca967ef9aa947864fb4d0c727ea (diff) | |
Use `default_program_path()` instead of `default_program_ident()`
Diffstat (limited to 'mingling_macros/src/groupped.rs')
| -rw-r--r-- | mingling_macros/src/groupped.rs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/mingling_macros/src/groupped.rs b/mingling_macros/src/groupped.rs index 4fd0665..e385812 100644 --- a/mingling_macros/src/groupped.rs +++ b/mingling_macros/src/groupped.rs @@ -1,10 +1,7 @@ use proc_macro::TokenStream; -use proc_macro2::Span; use quote::quote; use syn::{Attribute, DeriveInput, Ident, parse_macro_input}; -use crate::DEFAULT_PROGRAM_NAME; - /// Parses the `#[group(...)]` attribute to extract the group type fn parse_group_attribute(attrs: &[Attribute]) -> Option<Ident> { for attr in attrs { @@ -25,8 +22,9 @@ pub fn derive_groupped(input: TokenStream) -> TokenStream { let struct_name = input.ident; // Parse attributes to find #[group(...)] - let group_ident = parse_group_attribute(&input.attrs) - .unwrap_or_else(|| Ident::new(DEFAULT_PROGRAM_NAME, Span::call_site())); + let group_ident: proc_macro2::TokenStream = parse_group_attribute(&input.attrs) + .map(|ident| quote! { #ident }) + .unwrap_or_else(crate::default_program_path); let any_output_convert_impls = proc_macro2::TokenStream::from(build_any_output_convert_impls( struct_name.clone(), @@ -56,8 +54,9 @@ pub fn derive_groupped_serialize(input: TokenStream) -> TokenStream { let struct_name = input_parsed.ident.clone(); // Parse attributes to find #[group(...)] - let group_ident = parse_group_attribute(&input_parsed.attrs) - .unwrap_or_else(|| Ident::new(DEFAULT_PROGRAM_NAME, Span::call_site())); + let group_ident: proc_macro2::TokenStream = parse_group_attribute(&input_parsed.attrs) + .map(|ident| quote! { #ident }) + .unwrap_or_else(crate::default_program_path); let any_output_convert_impls = proc_macro2::TokenStream::from(build_any_output_convert_impls( struct_name.clone(), @@ -83,7 +82,10 @@ pub fn derive_groupped_serialize(input: TokenStream) -> TokenStream { expanded.into() } -fn build_any_output_convert_impls(struct_name: Ident, group_ident: Ident) -> TokenStream { +fn build_any_output_convert_impls( + struct_name: Ident, + group_ident: proc_macro2::TokenStream, +) -> TokenStream { quote! { impl ::std::convert::Into<::mingling::AnyOutput<#group_ident>> for #struct_name { fn into(self) -> ::mingling::AnyOutput<#group_ident> { |
