1extern crate proc_macro;
2
3mod execute;
4mod kind;
5mod parser;
6mod query;
7mod sql;
8mod table;
9
10use {
11 crate::{execute::Execute, kind::Kind, query::Query, table::Table},
12 proc_macro::TokenStream,
13};
14
15#[proc_macro_derive(Execute, attributes(execute))]
23pub fn derive_execute(input: TokenStream) -> TokenStream {
24 let input = syn::parse(input).unwrap();
25
26 Execute::derive(input).into()
27}
28
29#[proc_macro_derive(Kind, attributes(kind))]
30pub fn derive_kind(input: TokenStream) -> TokenStream {
31 let input = syn::parse(input).unwrap();
32
33 Kind::derive(input).into()
34}
35
36#[proc_macro_derive(Query, attributes(query))]
44pub fn derive_query(input: TokenStream) -> TokenStream {
45 let input = syn::parse(input).unwrap();
46
47 Query::derive(input).into()
48}
49
50#[proc_macro_derive(Table, attributes(table))]
51pub fn derive_table(input: TokenStream) -> TokenStream {
52 let input = syn::parse(input).unwrap();
53
54 Table::derive(input).into()
55}