diff options
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -19,6 +19,7 @@ use { syn::{spanned::Spanned, GenericArgument, LitStr, PathArguments, Type}, }; +mod args_info; mod errors; mod help; mod parse_attrs; @@ -31,6 +32,14 @@ pub fn argh_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream { gen.into() } +/// Entrypoint for `#[derive(ArgsInfo)]`. +#[proc_macro_derive(ArgsInfo, attributes(argh))] +pub fn args_info_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream { + let ast = syn::parse_macro_input!(input as syn::DeriveInput); + let gen = args_info::impl_args_info(&ast); + gen.into() +} + /// Transform the input into a token stream containing any generated implementations, /// as well as all errors that occurred. fn impl_from_args(input: &syn::DeriveInput) -> TokenStream { |