include_sql_helper/
lib.rs1pub fn push<'a,T: ?Sized>(arg: &[&'a T], param_prefix: &str, sql: &mut String, args: &mut Vec<&'a T>) {
9 let start = args.len() + 1;
10 let end = start + arg.len();
11 let range = start..end;
12 let mut iter = range.into_iter();
13 if let Some( n ) = iter.next() {
14 sql.push_str(param_prefix);
15 sql.push_str(&n.to_string());
16 for n in iter {
17 sql.push(',');
18 sql.push_str(param_prefix);
19 sql.push_str(&n.to_string());
20 }
21 }
22 args.extend_from_slice(arg);
23}
24
25#[macro_export]
29macro_rules! def_args {
30 ($s:tt => $macro_name:ident : $args_struct:ident = $($field:ident),+) => {
31 #[allow(unused_macros)]
32 macro_rules! $macro_name {
33 ($s($s name:ident : $s value:expr),+) => {{
34 let args = $args_struct { $s( $s name : $s value ),+ };
35 &[ $(args.$field),+ ]
36 }};
37 }
38 };
39}