struct_patch_derive/
lib.rs1extern crate proc_macro;
2mod filler;
3mod patch;
4
5use filler::Filler;
6use patch::Patch;
7
8#[cfg(feature = "op")]
9pub(crate) enum Addable {
10 Disable,
11 AddTrait,
12 AddFn(proc_macro2::Ident),
13}
14
15#[proc_macro_derive(Patch, attributes(patch))]
16pub fn derive_patch(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
17 Patch::from_ast(syn::parse_macro_input!(item as syn::DeriveInput))
18 .unwrap()
19 .to_token_stream()
20 .unwrap()
21 .into()
22}
23
24#[proc_macro_derive(Filler, attributes(filler))]
25pub fn derive_filler(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
26 Filler::from_ast(syn::parse_macro_input!(item as syn::DeriveInput))
27 .unwrap()
28 .to_token_stream()
29 .unwrap()
30 .into()
31}