db_derive_impl/
lib.rs

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]
16// pub fn execute(input: TokenStream) -> TokenStream {
17//     let input = syn::parse(input).unwrap();
18//
19//     Execute::function(input).into()
20// }
21
22#[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]
37// pub fn query(input: TokenStream) -> TokenStream {
38//     let input = syn::parse(input).unwrap();
39//
40//     Query::function(input).into()
41// }
42
43#[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}