Skip to main content

wp_knowledge/mem/
params.rs

1use rusqlite::ToSql;
2
3use super::{SqlNamedParam, ToSqlParams};
4
5impl<'a> ToSqlParams<'a, [(&'a str, &'a dyn ToSql); 1]> for [SqlNamedParam; 1] {
6    fn to_params(&'a self) -> [(&'a str, &'a dyn ToSql); 1] {
7        [(self[0].0.get_name(), &self[0])]
8    }
9}
10
11macro_rules! impl_to_params {
12    ($n:literal) => {
13        impl<'a> ToSqlParams<'a, [(&'a str, &'a dyn ToSql); $n]> for [SqlNamedParam; $n] {
14            fn to_params(&'a self) -> [(&'a str, &'a dyn ToSql); $n] {
15                let mut params = [("", &"" as &dyn ToSql); $n];
16                for (i, param) in self.iter().enumerate() {
17                    params[i] = (param.0.get_name(), param);
18                }
19                params
20            }
21        }
22    };
23}
24
25impl_to_params!(2);
26impl_to_params!(3);
27impl_to_params!(4);
28impl_to_params!(5);
29impl_to_params!(6);
30impl_to_params!(7);
31impl_to_params!(8);
32impl_to_params!(9);
33impl_to_params!(10);