boot_fns_derive/
lib.rs

1#![recursion_limit = "128"]
2
3mod execute_fns;
4mod helpers;
5mod query_fns;
6
7extern crate proc_macro;
8use proc_macro::TokenStream;
9use syn::{parse_macro_input, DeriveInput, ItemEnum};
10
11#[proc_macro_derive(ExecuteFns, attributes(payable, impl_into))]
12pub fn boot_execute(input: TokenStream) -> TokenStream {
13    let ast = parse_macro_input!(input as DeriveInput);
14    execute_fns::execute_fns_derive(ast)
15}
16
17#[proc_macro_derive(QueryFns, attributes(returns, impl_into))]
18pub fn boot_query(input: TokenStream) -> TokenStream {
19    let ast = parse_macro_input!(input as ItemEnum);
20    query_fns::query_fns_derive(ast)
21}