lib.rs 478 B

1234567891011121314
  1. use proc_macro::TokenStream;
  2. use quote::quote;
  3. use syn::{parse_macro_input, parse_quote, Attribute, DeriveInput};
  4. #[proc_macro_attribute]
  5. pub fn arguments(_attr: TokenStream, item: TokenStream) -> TokenStream {
  6. let mut input = parse_macro_input!(item as DeriveInput);
  7. let new_attr: Attribute = parse_quote! { #[derive(bolt_lang::serde::Deserialize)] };
  8. input.attrs.push(new_attr);
  9. let expanded = quote! {
  10. #input
  11. };
  12. TokenStream::from(expanded)
  13. }