use super::*;
pub(crate) fn import_macro(attr: TokenStream, item: TokenStream) -> TokenStream {
let path: Path = match parse(attr) {
Ok(path) => path,
Err(error) => return error.to_compile_error().into(),
};
let input_fn: ItemFn = parse_macro_input!(item as ItemFn);
let attrs: &Vec<Attribute> = &input_fn.attrs;
let vis: &Visibility = &input_fn.vis;
let sig: &Signature = &input_fn.sig;
let stmts: &Vec<Stmt> = &input_fn.block.stmts;
let gen_code: proc_macro2::TokenStream = quote! {
#(#attrs)*
#vis #sig {
#[allow(unused_imports)]
use #path as _;
#(#stmts)*
}
};
gen_code.into()
}