1#![forbid(unsafe_code)]
2
3use proc_macro::TokenStream;
4use syn::{DeriveInput, parse_macro_input};
5
6mod enum_def;
7mod iden;
8mod raw_query;
9mod raw_sql;
10mod sqlx;
11
12#[proc_macro_derive(Iden, attributes(iden, method))]
13pub fn derive_iden(input: TokenStream) -> TokenStream {
14 let input: DeriveInput = parse_macro_input!(input);
15 iden::expand(input)
16}
17
18#[proc_macro_derive(IdenStatic, attributes(iden, method))]
19pub fn derive_iden_static(input: TokenStream) -> TokenStream {
20 let input: DeriveInput = parse_macro_input!(input);
21 iden::iden_static::expand(input)
22}
23
24#[proc_macro_attribute]
25pub fn enum_def(args: TokenStream, input: TokenStream) -> TokenStream {
26 enum_def::expand(args, input)
27}
28
29#[proc_macro]
30pub fn raw_sql(input: TokenStream) -> TokenStream {
31 match raw_sql::expand(input) {
32 Ok(token_stream) => token_stream.into(),
33 Err(err) => err.to_compile_error().into(),
34 }
35}
36
37#[proc_macro]
38pub fn raw_query(input: TokenStream) -> TokenStream {
39 match raw_query::expand(input) {
40 Ok(token_stream) => token_stream.into(),
41 Err(err) => err.to_compile_error().into(),
42 }
43}
44
45#[proc_macro]
46pub fn sqlx_sqlite_query(input: TokenStream) -> TokenStream {
47 match sqlx::sqlite_query(input) {
48 Ok(token_stream) => token_stream.into(),
49 Err(err) => err.to_compile_error().into(),
50 }
51}
52
53#[proc_macro]
54pub fn sqlx_sqlite_query_as(input: TokenStream) -> TokenStream {
55 match sqlx::sqlite_query_as(input) {
56 Ok(token_stream) => token_stream.into(),
57 Err(err) => err.to_compile_error().into(),
58 }
59}
60
61#[proc_macro]
62pub fn sqlx_mysql_query(input: TokenStream) -> TokenStream {
63 match sqlx::mysql_query(input) {
64 Ok(token_stream) => token_stream.into(),
65 Err(err) => err.to_compile_error().into(),
66 }
67}
68
69#[proc_macro]
70pub fn sqlx_mysql_query_as(input: TokenStream) -> TokenStream {
71 match sqlx::mysql_query_as(input) {
72 Ok(token_stream) => token_stream.into(),
73 Err(err) => err.to_compile_error().into(),
74 }
75}
76
77#[proc_macro]
78pub fn sqlx_postgres_query(input: TokenStream) -> TokenStream {
79 match sqlx::postgres_query(input) {
80 Ok(token_stream) => token_stream.into(),
81 Err(err) => err.to_compile_error().into(),
82 }
83}
84
85#[proc_macro]
86pub fn sqlx_postgres_query_as(input: TokenStream) -> TokenStream {
87 match sqlx::postgres_query_as(input) {
88 Ok(token_stream) => token_stream.into(),
89 Err(err) => err.to_compile_error().into(),
90 }
91}