Skip to main content

interstice_sdk_macros/
lib.rs

1mod init;
2mod interstice_type;
3mod reducer;
4mod table;
5
6use proc_macro::TokenStream;
7
8use crate::{
9    init::init_macro, interstice_type::derive_interstice_type_macro, reducer::reducer_macro,
10    table::table_macro,
11};
12
13#[proc_macro_attribute]
14pub fn init(_attr: TokenStream, item: TokenStream) -> TokenStream {
15    init_macro(item)
16}
17
18#[proc_macro_attribute]
19pub fn table(attr: TokenStream, item: TokenStream) -> TokenStream {
20    table_macro(attr, item)
21}
22
23#[proc_macro_attribute]
24pub fn reducer(attr: TokenStream, item: TokenStream) -> TokenStream {
25    reducer_macro(attr, item)
26}
27
28#[proc_macro_attribute]
29pub fn interstice_type(_attr: TokenStream, input: TokenStream) -> TokenStream {
30    derive_interstice_type_macro(input)
31}