axum_webtools_macros/
lib.rs1extern crate proc_macro;
2use proc_macro::TokenStream;
3use quote::quote;
4use syn::{parse_macro_input, ItemFn};
5
6#[proc_macro_attribute]
7pub fn unit_test(_: TokenStream, item: TokenStream) -> TokenStream {
8 let input = parse_macro_input!(item as ItemFn);
9 let name = &input.sig.ident;
10 let block = &input.block;
11
12 let expanded = quote! {
13 #[tokio::test]
14 async fn #name() {
15 dotenv::dotenv().ok();
16 match env_logger::try_init() {
17 Ok(_) => {}
18 Err(_) => {}
19 }
20 #block
21 }
22 };
23
24 TokenStream::from(expanded)
25}