1#[macro_export]
2#[deprecated = "use query_unchecked instead"]
3macro_rules! query {
4 ($tbl:ty;$q:expr$(,$param:expr)*) => {
5 format!($q, $($param,)*table = <$tbl as $crate::legacy::Table>::table_name()).as_str()
6 };
7}
8#[macro_export]
9macro_rules! query_unchecked {
10 ($tbl:ty;$q:expr$(,$param:expr)*) => {
11 format!($q, $($param,)*table = <$tbl as $crate::legacy::Table>::table_name()).as_str()
12 };
13}
14#[macro_export]
15macro_rules! table {
16 (
17 $(#[$($meta:meta),*])?
18 $pub:vis $name:ident $([table_name=$tbl_name:expr])?
19 {
20 $(
21 $(#[$($inner_meta:meta),*])?
22 $field_pub:vis $rust_key:ident $rust_type:ty : $db_name:tt $db_type:expr
23 ),+
24 }
25 ) => {
26 $(#[$($meta),*])?
27 $pub struct $name {
28 $(
29 $(#[$($inner_meta),*])?
30 $field_pub $rust_key:$rust_type
31 ),+
32 }
33 impl $crate::legacy::Table for $name{
34 fn table_name()->String{
35 let mut name = stringify!($name).to_lowercase();
36 $(name=$tbl_name.to_string();)?
37 name
38 }
39 }
40 impl $name{
41 pub fn is_valid_column_name(name:&str)->bool{
42 match name{
43 $(
44 stringify!($db_name) => true,
45 )+
46 _ => false
47 }
48 }
49 $crate::pg_fns!(create_table_str $name $($db_name,$db_type);+);
50 }
51 $crate::pg_fns!(from_table $name $($rust_key,$db_name);+);
52 };
53}