ockam_macros 0.38.0

End-to-end encryption and mutual authentication for distributed applications.
Documentation
use proc_macro::TokenStream;

use quote::quote;
use syn::{Error, ItemFn};

pub(crate) fn expand(input_fn: ItemFn) -> Result<TokenStream, Error> {
    let original_fn_ident = input_fn.sig.ident;
    let import_test = quote! { use ockam_vault::#original_fn_ident; };
    let run_test = quote! { #original_fn_ident(&mut vault).await; };
    let output = quote! {
        #[tokio::test]
        async fn #original_fn_ident() {
            #import_test
            let mut vault = new_vault();
            #run_test
        }
    };
    Ok(output.into())
}