From 60b91db3df168532f9143f0cafb7b5166e1dc78b Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 16 May 2026 22:31:52 +0800 Subject: Accept paths for program name parameters in macros MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All proc macros (`pack!`, `dispatcher!`, `#[chain]`, `#[program_setup]`, `#[dispatcher_clap]`, `#[derive(Groupped)]`) now parse program names as `syn::Path` instead of bare `Ident`, allowing use of paths like `crate::MyProgram` or `my_crate::MyProgram`. The default program name `ThisProgram` is no longer re-exported or required as an import — generated code references `crate::ThisProgram` directly. --- mingling_macros/src/program_setup.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'mingling_macros/src/program_setup.rs') diff --git a/mingling_macros/src/program_setup.rs b/mingling_macros/src/program_setup.rs index dd32581..383d632 100644 --- a/mingling_macros/src/program_setup.rs +++ b/mingling_macros/src/program_setup.rs @@ -53,8 +53,8 @@ pub fn setup_attr(attr: TokenStream, item: TokenStream) -> TokenStream { let (program_name, use_crate_prefix) = if attr.is_empty() { (crate::default_program_path(), true) } else { - let ident: Ident = parse_macro_input!(attr as Ident); - (quote! { #ident }, false) + let path: syn::Path = parse_macro_input!(attr as syn::Path); + (quote! { #path }, false) }; // Parse the function item -- cgit