struct_patch_derive/
lib.rs

1extern 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}