aboutsummaryrefslogtreecommitdiff
path: root/guests_macro/src/lib.rs
blob: a01a84bc0859e83edd2b3796f7fa0cac8d637307 (plain) (blame)
1
2
3
4
5
6
7
8
9
use proc_macro::TokenStream;
mod parse_fn;

#[proc_macro_attribute]
pub fn proving_entrypoint(_: TokenStream, mut item: TokenStream) -> TokenStream {
    let (name, args, ret) = parse_fn::split_fn(&item);
    item.extend(format!("#[macro_export] macro_rules! entrypoint_expr {{ () => {{ make_wrapper!({}{} -> {}) }}; }}", name, args, ret).parse::<TokenStream>());
    item
}