use proc_macro::TokenStream;
mod codegen;
mod parse;
#[proc_macro_derive(SensitiveDebug, attributes(sensitive))]
pub fn derive_sensitive_debug(input: TokenStream) -> TokenStream {
let ast = syn::parse_macro_input!(input as syn::DeriveInput);
match parse::plan_struct(&ast, "SensitiveDebug") {
Ok(fields) => codegen::emit_debug_impl(&ast, &fields).into(),
Err(err) => err.to_compile_error().into(),
}
}
#[proc_macro_derive(SensitiveDisplay, attributes(sensitive))]
pub fn derive_sensitive_display(input: TokenStream) -> TokenStream {
let ast = syn::parse_macro_input!(input as syn::DeriveInput);
match parse::plan_struct(&ast, "SensitiveDisplay") {
Ok(fields) => codegen::emit_display_impl(&ast, &fields).into(),
Err(err) => err.to_compile_error().into(),
}
}