use proc_macro::TokenStream;
#[proc_macro_attribute]
pub fn contract(_attr: TokenStream, item: TokenStream) -> TokenStream {
let src = item.to_string();
let cleaned = src.replace("#[readonly]", "").replace("# [readonly]", "");
cleaned.parse().expect("failed to parse struct after stripping #[readonly]")
}
#[proc_macro_attribute]
pub fn stateful_contract(_attr: TokenStream, item: TokenStream) -> TokenStream {
contract(TokenStream::new(), item)
}
#[proc_macro_attribute]
pub fn methods(_attr: TokenStream, item: TokenStream) -> TokenStream {
item
}
#[proc_macro_attribute]
pub fn public(_attr: TokenStream, item: TokenStream) -> TokenStream {
item
}