struct_patch_derive/
lib.rs

1extern crate proc_macro;
2mod filler;
3mod patch;
4
5use filler::Filler;
6use patch::Patch;
7
8#[proc_macro_derive(Patch, attributes(patch))]
9pub fn derive_patch(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
10    Patch::from_ast(syn::parse_macro_input!(item as syn::DeriveInput))
11        .unwrap()
12        .to_token_stream()
13        .unwrap()
14        .into()
15}
16
17#[proc_macro_derive(Filler, attributes(filler))]
18pub fn derive_filler(item: proc_macro::TokenStream) -> proc_macro::TokenStream {
19    Filler::from_ast(syn::parse_macro_input!(item as syn::DeriveInput))
20        .unwrap()
21        .to_token_stream()
22        .unwrap()
23        .into()
24}