axum-webtools-macros 0.1.61

General purpose macros for axum web framework.
Documentation
extern crate proc_macro;
use proc_macro::TokenStream;
use quote::quote;
use syn::{parse_macro_input, ItemFn};

#[proc_macro_attribute]
pub fn unit_test(_: TokenStream, item: TokenStream) -> TokenStream {
    let input = parse_macro_input!(item as ItemFn);
    let name = &input.sig.ident;
    let block = &input.block;

    let expanded = quote! {
        #[tokio::test]
        async fn #name() {
            dotenv::dotenv().ok();
            match env_logger::try_init() {
                Ok(_) => {}
                Err(_) => {}
            }
            #block
        }
    };

    TokenStream::from(expanded)
}