refine macros

This commit is contained in:
Aiden McClelland
2021-03-25 18:09:07 -06:00
parent 2c3fd8159e
commit 5b77719631
5 changed files with 85 additions and 39 deletions

View File

@@ -1,13 +1,10 @@
extern crate proc_macro;
use proc_macro::TokenStream;
use syn::{parse_macro_input, AttributeArgs, Item};
use syn::{parse_macro_input, DeriveInput};
#[proc_macro_attribute]
pub fn model(attr_in: TokenStream, item_in: TokenStream) -> TokenStream {
let mut res = proc_macro2::TokenStream::from(item_in.clone());
let attr = parse_macro_input!(attr_in as AttributeArgs);
let item = parse_macro_input!(item_in as Item);
res.extend(patch_db_macro_internals::build_model(&attr, &item));
res.into()
#[proc_macro_derive(HasModel, attributes(model))]
pub fn model(item: TokenStream) -> TokenStream {
let item = parse_macro_input!(item as DeriveInput);
patch_db_macro_internals::build_model(&item).into()
}