diff --git a/embedded-cli-macros/src/command/mod.rs b/embedded-cli-macros/src/command/mod.rs index 1e6dc3b..f564617 100644 --- a/embedded-cli-macros/src/command/mod.rs +++ b/embedded-cli-macros/src/command/mod.rs @@ -27,6 +27,7 @@ struct ServiceAttrs { pub fn derive_command(input: DeriveInput) -> Result { let opts = ServiceAttrs::from_derive_input(&input)?; let DeriveInput { + vis, ident, data, generics, @@ -66,7 +67,7 @@ pub fn derive_command(input: DeriveInput) -> Result { } else { parse::derive_from_raw(&target, &commands)? }; - let impl_processor = processor::impl_processor(&target)?; + let impl_processor = processor::impl_processor(&vis, &target)?; let output = quote! { #derive_autocomplete diff --git a/embedded-cli-macros/src/group/mod.rs b/embedded-cli-macros/src/group/mod.rs index 1f09d98..ba965f1 100644 --- a/embedded-cli-macros/src/group/mod.rs +++ b/embedded-cli-macros/src/group/mod.rs @@ -11,6 +11,7 @@ mod command_group; pub fn derive_command_group(input: DeriveInput) -> Result { let DeriveInput { + vis, ident, data, generics, @@ -36,7 +37,7 @@ pub fn derive_command_group(input: DeriveInput) -> Result { let derive_autocomplete = derive_autocomplete(&target, &groups); let derive_help = derive_help(&target, &groups); let derive_from_raw = derive_from_raw(&target, &groups); - let impl_processor = processor::impl_processor(&target)?; + let impl_processor = processor::impl_processor(&vis, &target)?; let output = quote! { #derive_autocomplete diff --git a/embedded-cli-macros/src/processor.rs b/embedded-cli-macros/src/processor.rs index 655175c..78c5e43 100644 --- a/embedded-cli-macros/src/processor.rs +++ b/embedded-cli-macros/src/processor.rs @@ -1,10 +1,11 @@ use darling::Result; use proc_macro2::TokenStream; use quote::quote; +use syn::Visibility; use crate::utils::TargetType; -pub fn impl_processor(target: &TargetType) -> Result { +pub fn impl_processor(vis: &Visibility, target: &TargetType) -> Result { let ident = target.ident(); let named_lifetime = target.named_lifetime(); let unnamed_lifetime = target.unnamed_lifetime(); @@ -12,7 +13,7 @@ pub fn impl_processor(target: &TargetType) -> Result { let output = quote! { impl #named_lifetime #ident #named_lifetime { - fn processor< + #vis fn processor< W: _io::Write, E: _io::Error, F: FnMut(&mut _cli::cli::CliHandle<'_, W, E>, #ident #unnamed_lifetime) -> Result<(), E>,