kutil_cli_macros/lib.rs
1mod derive_debuggable;
2
3// See: https://petanode.com/posts/rust-proc-macro/
4
5/// Procedural macro for `#[derive(Debuggable)]`.
6#[proc_macro_derive(Debuggable, attributes(debuggable))]
7pub fn derive_resolve(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
8 let mut item: syn::ItemStruct = syn::parse_macro_input!(input);
9 derive_debuggable::Generator::generate(&mut item).unwrap_or_else(|e| e.to_compile_error()).into()
10}