extern crate proc_macro;
#[allow(unused_imports)]
use proc_macro::TokenStream;
#[cfg(feature = "commitment-scheme")]
mod commit;
#[cfg(feature = "state-machine")]
mod fsm;
#[cfg(feature = "storage")]
mod storage;
#[cfg(feature = "commitment-scheme")]
#[proc_macro_attribute]
pub fn commit(attr: TokenStream, item: TokenStream) -> TokenStream {
commit::commit(attr, item)
}
#[cfg(feature = "commitment-scheme")]
#[proc_macro_attribute]
pub fn reveal(attr: TokenStream, item: TokenStream) -> TokenStream {
commit::reveal(attr, item)
}
#[cfg(feature = "state-machine")]
#[proc_macro_attribute]
pub fn state_machine(attr: TokenStream, item: TokenStream) -> TokenStream {
fsm::state_machine(attr, item)
}
#[cfg(feature = "storage")]
#[proc_macro_attribute]
pub fn storage(attr: TokenStream, item: TokenStream) -> TokenStream {
storage::storage(attr, item)
}
#[cfg(feature = "storage")]
#[proc_macro_attribute]
pub fn key_constraint(attr: TokenStream, item: TokenStream) -> TokenStream {
storage::key_constraint(attr, item)
}