diff options
Diffstat (limited to 'mingling_macros')
| -rw-r--r-- | mingling_macros/src/dispatcher_clap.rs | 6 |
1 files changed, 6 insertions, 0 deletions
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() |
