diesel_test_helper/
lib.rs
1extern crate proc_macro2;
2use proc_macro::TokenStream;
3use quote::quote;
4use syn::{parse_macro_input, ItemFn};
5
6#[proc_macro_attribute]
9pub fn test(_: TokenStream, item: TokenStream) -> TokenStream {
10 let ItemFn {
11 sig,
12 vis,
13 block,
14 attrs,
15 } = parse_macro_input!(item as ItemFn);
16
17 let cfgs = quote! {
18 #[cfg_attr(all(target_family = "wasm", target_os = "unknown"), wasm_bindgen_test::wasm_bindgen_test)]
19 #[cfg_attr(not(all(target_family = "wasm", target_os = "unknown")), test)]
20 };
21 quote!(
22 #cfgs
23 #(#attrs)*
24 #vis #sig {
25 #block
26 }
27 )
28 .into()
29}