Skip to main content

interstice_sdk_macros/
lib.rs

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