From 94da1b889857e8f936335ebea50c62fcfb3b7c58 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sun, 26 Apr 2026 00:59:20 +0800 Subject: Add early return for help flag in dispatcher_clap macro --- mingling_macros/src/dispatcher_clap.rs | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'mingling_macros') diff --git a/mingling_macros/src/dispatcher_clap.rs b/mingling_macros/src/dispatcher_clap.rs index 871dbed..8dd38af 100644 --- a/mingling_macros/src/dispatcher_clap.rs +++ b/mingling_macros/src/dispatcher_clap.rs @@ -203,6 +203,9 @@ pub fn dispatcher_clap_attr(attr: TokenStream, item: TokenStream) -> TokenStream // Generate the `begin` method body let begin_body = if let Some(ref error_struct) = options.error_struct { quote! { + if ::mingling::this::<#program_ident>().user_context.help { + return #struct_name::default().to_chain(); + } match <#struct_name as ::clap::Parser>::try_parse_from(clap_args) { Ok(parsed) => parsed.to_chain(), Err(e) => { @@ -212,6 +215,9 @@ pub fn dispatcher_clap_attr(attr: TokenStream, item: TokenStream) -> TokenStream } } else { quote! { + if ::mingling::this::<#program_ident>().user_context.help { + return #struct_name::default().to_chain(); + } let parsed = <#struct_name as ::clap::Parser>::try_parse_from(clap_args) .unwrap_or_else(|e| e.exit()); parsed.to_chain() -- cgit