serde_json_path_macros_internal/
mod.rs1use proc_macro::TokenStream;
2use syn::{parse_macro_input, ItemFn};
3
4mod common;
5mod func;
6mod reg;
7
8#[proc_macro_attribute]
9pub fn function(attr: TokenStream, item: TokenStream) -> TokenStream {
10 let args = parse_macro_input!(attr as func::FunctionMacroArgs);
11 let item_fn = parse_macro_input!(item as ItemFn);
12
13 func::expand(args, item_fn)
14}
15
16#[proc_macro_attribute]
17pub fn register(attr: TokenStream, item: TokenStream) -> TokenStream {
18 let args = parse_macro_input!(attr as reg::RegisterMacroArgs);
19 let item_fn = parse_macro_input!(item as ItemFn);
20
21 reg::expand(args, item_fn)
22}