1use log::debug;
2use proc_macro::TokenStream;
3use quote::ToTokens;
4use syn::parse2;
5
6mod from_dir;
7mod index;
8#[proc_macro]
35pub fn from_dir(input: TokenStream) -> TokenStream
36{
37 let _ = env_logger::try_init();
38 let path = proc_macro::Span::call_site().local_file().unwrap();
39 let base = path.parent().unwrap();
40 let input: from_dir::InputBuf = parse2(input.into()).unwrap();
41 debug!("base: {base:?}, input: {:?}", input.path());
42 from_dir::from_dir(base, input.path(), input.as_ref()).unwrap().into()
43}
44#[proc_macro]
45pub fn get(input: TokenStream) -> TokenStream
46{
47 let _ = env_logger::try_init();
48 let path = proc_macro::Span::call_site().local_file().unwrap();
49 let base = path.parent().unwrap();
50 let input: index::InputBuf = parse2(input.into()).unwrap();
51 debug!("base: {base:?}, input: {:?}", input.expr().into_token_stream());
52 index::get(input).unwrap().into()
53}