we_contract_proc_macro/
lib.rs

1mod generator;
2
3use proc_macro::TokenStream;
4
5/// Marks trait as an interface to another contract.
6#[proc_macro_attribute]
7pub fn interface(_attr: TokenStream, item: TokenStream) -> TokenStream {
8    match generator::interface(item.into()) {
9        Ok(result) => result.into(),
10        Err(_) => panic!(),
11    }
12}
13
14/// Marks function as a called function.
15#[proc_macro_attribute]
16pub fn action(_attr: TokenStream, item: TokenStream) -> TokenStream {
17    match generator::action(item.into()) {
18        Ok(result) => result.into(),
19        Err(_) => panic!(),
20    }
21}