sql_macros_derive/
lib.rs

1use proc_macro::TokenStream;
2
3mod delete;
4mod insert;
5mod insert_many;
6mod parser;
7mod select;
8mod select_all;
9mod select_many;
10mod table;
11mod update;
12
13#[proc_macro_derive(SqlSelect, attributes(table))]
14pub fn sql_select_macro_derive(input: TokenStream) -> TokenStream {
15    let mut input = syn::parse_macro_input!(input as syn::DeriveInput);
16    select::sql_select_macro_derive(&mut input)
17}
18
19#[proc_macro_derive(SqlSelectAll, attributes(table))]
20pub fn sql_select_all_macro_derive(input: TokenStream) -> TokenStream {
21    let mut input = syn::parse_macro_input!(input as syn::DeriveInput);
22    select_all::sql_select_all_macro_derive(&mut input)
23}
24
25#[proc_macro_derive(SqlSelectMany, attributes(table))]
26pub fn sql_select_many_macro_derive(input: TokenStream) -> TokenStream {
27    let mut input = syn::parse_macro_input!(input as syn::DeriveInput);
28    select_many::sql_select_many_macro_derive(&mut input)
29}
30
31#[proc_macro_derive(SqlInsert, attributes(table))]
32pub fn sql_insert_macro_derive(input: TokenStream) -> TokenStream {
33    let mut input = syn::parse_macro_input!(input as syn::DeriveInput);
34    insert::sql_insert_macro_derive(&mut input)
35}
36
37#[proc_macro_derive(SqlInsertMany, attributes(table))]
38pub fn sql_insert_many_macro_derive(input: TokenStream) -> TokenStream {
39    let mut input = syn::parse_macro_input!(input as syn::DeriveInput);
40    insert_many::sql_insert_many_macro_derive(&mut input)
41}
42
43#[proc_macro_derive(SqlUpdate, attributes(table))]
44pub fn sql_update_macro_derive(input: TokenStream) -> TokenStream {
45    let mut input = syn::parse_macro_input!(input as syn::DeriveInput);
46    update::sql_update_macro_derive(&mut input)
47}
48
49#[proc_macro_derive(SqlDelete, attributes(table))]
50pub fn sql_delete_macro_derive(input: TokenStream) -> TokenStream {
51    let mut input = syn::parse_macro_input!(input as syn::DeriveInput);
52    delete::sql_delete_macro_derive(&mut input)
53}
54
55#[proc_macro_derive(SqlTable, attributes(table))]
56pub fn sql_table_macro_derive(input: TokenStream) -> TokenStream {
57    let input = syn::parse_macro_input!(input as syn::DeriveInput);
58    table::sql_table_macro_derive(&input).unwrap()
59}