sqlx_exasol/
macros.rs

1#[macro_export]
2#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
3macro_rules! query (
4    ($query:expr) => ({
5        $crate::sqlx_exasol_macros::expand_query!(source = $query)
6    });
7    ($query:expr, $($args:tt)*) => ({
8        $crate::sqlx_exasol_macros::expand_query!(source = $query, args = [$($args)*])
9    })
10);
11
12#[macro_export]
13#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
14macro_rules! query_unchecked (
15    ($query:expr) => ({
16        $crate::sqlx_exasol_macros::expand_query!(source = $query, checked = false)
17    });
18    ($query:expr, $($args:tt)*) => ({
19        $crate::sqlx_exasol_macros::expand_query!(source = $query, args = [$($args)*], checked = false)
20    })
21);
22
23#[macro_export]
24#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
25macro_rules! query_file (
26    ($path:literal) => ({
27        $crate::sqlx_exasol_macros::expand_query!(source_file = $path)
28    });
29    ($path:literal, $($args:tt)*) => ({
30        $crate::sqlx_exasol_macros::expand_query!(source_file = $path, args = [$($args)*])
31    })
32);
33
34#[macro_export]
35#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
36macro_rules! query_file_unchecked (
37    ($path:literal) => ({
38        $crate::sqlx_exasol_macros::expand_query!(source_file = $path, checked = false)
39    });
40    ($path:literal, $($args:tt)*) => ({
41        $crate::sqlx_exasol_macros::expand_query!(source_file = $path, args = [$($args)*], checked = false)
42    })
43);
44
45#[macro_export]
46#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
47macro_rules! query_as (
48    ($out_struct:path, $query:expr) => ( {
49        $crate::sqlx_exasol_macros::expand_query!(record = $out_struct, source = $query)
50    });
51    ($out_struct:path, $query:expr, $($args:tt)*) => ( {
52        $crate::sqlx_exasol_macros::expand_query!(record = $out_struct, source = $query, args = [$($args)*])
53    })
54);
55
56#[macro_export]
57#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
58macro_rules! query_file_as (
59    ($out_struct:path, $path:literal) => ( {
60        $crate::sqlx_exasol_macros::expand_query!(record = $out_struct, source_file = $path)
61    });
62    ($out_struct:path, $path:literal, $($args:tt)*) => ( {
63        $crate::sqlx_exasol_macros::expand_query!(record = $out_struct, source_file = $path, args = [$($args)*])
64    })
65);
66
67#[macro_export]
68#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
69macro_rules! query_as_unchecked (
70    ($out_struct:path, $query:expr) => ( {
71        $crate::sqlx_exasol_macros::expand_query!(record = $out_struct, source = $query, checked = false)
72    });
73
74    ($out_struct:path, $query:expr, $($args:tt)*) => ( {
75        $crate::sqlx_exasol_macros::expand_query!(record = $out_struct, source = $query, args = [$($args)*], checked = false)
76    })
77);
78
79#[macro_export]
80#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
81macro_rules! query_file_as_unchecked (
82    ($out_struct:path, $path:literal) => ( {
83        $crate::sqlx_exasol_macros::expand_query!(record = $out_struct, source_file = $path, checked = false)
84    });
85
86    ($out_struct:path, $path:literal, $($args:tt)*) => ( {
87        $crate::sqlx_exasol_macros::expand_query!(record = $out_struct, source_file = $path, args = [$($args)*], checked = false)
88    })
89);
90
91#[macro_export]
92#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
93macro_rules! query_scalar (
94    ($query:expr) => (
95        $crate::sqlx_exasol_macros::expand_query!(scalar = _, source = $query)
96    );
97    ($query:expr, $($args:tt)*) => (
98        $crate::sqlx_exasol_macros::expand_query!(scalar = _, source = $query, args = [$($args)*])
99    )
100);
101
102#[macro_export]
103#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
104macro_rules! query_file_scalar (
105    ($path:literal) => (
106        $crate::sqlx_exasol_macros::expand_query!(scalar = _, source_file = $path)
107    );
108    ($path:literal, $($args:tt)*) => (
109        $crate::sqlx_exasol_macros::expand_query!(scalar = _, source_file = $path, args = [$($args)*])
110    )
111);
112
113#[macro_export]
114#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
115macro_rules! query_scalar_unchecked (
116    ($query:expr) => (
117        $crate::sqlx_exasol_macros::expand_query!(scalar = _, source = $query, checked = false)
118    );
119    ($query:expr, $($args:tt)*) => (
120        $crate::sqlx_exasol_macros::expand_query!(scalar = _, source = $query, args = [$($args)*], checked = false)
121    )
122);
123
124#[macro_export]
125#[cfg_attr(docsrs, doc(cfg(feature = "macros")))]
126macro_rules! query_file_scalar_unchecked (
127    ($path:literal) => (
128        $crate::sqlx_exasol_macros::expand_query!(scalar = _, source_file = $path, checked = false)
129    );
130    ($path:literal, $($args:tt)*) => (
131        $crate::sqlx_exasol_macros::expand_query!(scalar = _, source_file = $path, args = [$($args)*], checked = false)
132    )
133);
134
135#[cfg(feature = "migrate")]
136#[macro_export]
137macro_rules! migrate {
138    ($dir:literal) => {{ $crate::sqlx_exasol_macros::migrate!($dir) }};
139
140    () => {{ $crate::sqlx_exasol_macros::migrate!() }};
141}