1#![cfg(feature = "postgres")]
2
3mod cache;
4mod parse;
5mod quote;
6mod derive;
7
8use syn::DeriveInput;
9use syn::parse_macro_input;
10use proc_macro::TokenStream;
11
12#[proc_macro_derive(Table, attributes(sqly))]
13pub fn derive_table(tokens: TokenStream) -> TokenStream {
14 match derive::table(parse_macro_input!(tokens as DeriveInput)) {
15 Err(err) => err.to_compile_error().into(),
16 Ok(stream) => stream.into(),
17 }
18}
19
20#[proc_macro_derive(Delete, attributes(sqly))]
21pub fn derive_delete(tokens: TokenStream) -> TokenStream {
22 match derive::delete(parse_macro_input!(tokens as DeriveInput)) {
23 Err(err) => err.to_compile_error().into(),
24 Ok(stream) => stream.into(),
25 }
26}
27
28#[proc_macro_derive(Insert, attributes(sqly))]
29pub fn derive_insert(tokens: TokenStream) -> TokenStream {
30 match derive::insert(parse_macro_input!(tokens as DeriveInput)) {
31 Err(err) => err.to_compile_error().into(),
32 Ok(stream) => stream.into(),
33 }
34}
35
36#[proc_macro_derive(Select, attributes(sqly))]
37pub fn derive_select(tokens: TokenStream) -> TokenStream {
38 match derive::select(parse_macro_input!(tokens as DeriveInput)) {
39 Err(err) => err.to_compile_error().into(),
40 Ok(stream) => stream.into(),
41 }
42}
43
44#[proc_macro_derive(Update, attributes(sqly))]
45pub fn derive_update(tokens: TokenStream) -> TokenStream {
46 match derive::update(parse_macro_input!(tokens as DeriveInput)) {
47 Err(err) => err.to_compile_error().into(),
48 Ok(stream) => stream.into(),
49 }
50}