db_helpers/
query.rs

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}