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// }