Skip to main content

sqly_macros/
lib.rs

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}