taitan_orm_trait/traits/
param.rs

1use std::fmt::Debug;
2use sqlx::Database;
3use crate::result::Result;
4pub trait Parameter<DB: Database> {
5    fn add_to_args<'a, 'b>(&'a self, args: &'b mut <DB as Database>::Arguments<'a>) -> Result<()>;
6
7    fn gen_args(&self) -> Result<<DB as Database>::Arguments<'_>> {
8        let mut args = <DB as Database>::Arguments::default();
9        self.add_to_args(&mut args)?;
10        Ok(args)
11    }
12}
13
14// pub trait UpsertParameter<DB: Database> {
15//     fn add_to_upsert_args(&self, args: &mut <DB as Database>::Arguments<'_>) -> Result<()>;
16//
17//     fn gen_upsert_args(&self) -> Result<<DB as Database>::Arguments<'_>> {
18//         let mut args = <DB as Database>::Arguments::default();
19//         self.add_to_upsert_args(&mut args)?;
20//         Ok(args)
21//     }
22// }
23//
24// pub trait CountParam<DB: Database> {
25//     fn add_to_count_args(&self, args: &mut <DB as Database>::Arguments<'_>) -> Result<()>;
26//
27//     fn gen_count_args(&self) -> Result<<DB as Database>::Arguments<'_>> {
28//         let mut args = <DB as Database>::Arguments::default();
29//         self.add_to_count_args(&mut args)?;
30//         Ok(args)
31//     }
32// }