branch: main
send.rs
588 bytesRaw
use proc_macro::TokenStream;
use quote::quote;
use syn::{parse_macro_input, ItemFn};
pub fn expand_macro(_attr: TokenStream, stream: TokenStream) -> TokenStream {
let stream_clone = stream.clone();
let input = parse_macro_input!(stream_clone as ItemFn);
let ItemFn {
attrs,
vis,
sig,
block,
} = input;
let stmts = &block.stmts;
let tokens = quote! {
#(#attrs)* #vis #sig {
worker::send::SendFuture::new(async {
#(#stmts)*
}).await
}
};
TokenStream::from(tokens)
}