1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#[proc_macro_attribute] pub fn
GET(attr: TokenStream, item: TokenStream) -> TokenStream {
const FRAME: &'static str = "async fn ex() -> impl amper::actix_web::Responder {}";
let frame: TokenStream = FRAME.parse().unwrap();
let frame = parse_macro_input!(frame as ItemFn);
let mut item = parse_macro_input!(item as ItemFn);
item.sig.asyncness = frame.sig.asyncness;
item.sig.output = frame.sig.output;
let attr: TokenStream = (format!("#[amper::actix_web::get({})]", attr)).parse().unwrap();
let item = quote! { #item };
let item: TokenStream =
((attr.to_string()) + &(item.to_string())[..]).parse().unwrap();
item
}