mirror of
https://github.com/Start9Labs/patch-db.git
synced 2026-03-26 02:11:54 +00:00
refine macros
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user