struct_patch_derive/
lib.rs1extern 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}