taitan_orm_trait/traits/
mutation.rs

1use crate::result::Result;
2use crate::traits::Parameter;
3use sqlx::{Database, MySql, Postgres, Sqlite};
4use std::borrow::Cow;
5use std::fmt::Debug;
6
7pub trait Mutation<DB: Database>: Parameter<DB> + Debug {
8    fn gen_update_set_sql<'a>(&self) -> Cow<'a, str>;
9    // fn add_update_set_args<'a>(&'a self, args: &mut DB::Arguments<'a>) -> Result<()>;
10    fn all_none(&self) -> bool;
11}
12
13pub trait MySqlMutation: Mutation<MySql> + Sync {}
14impl<T: Mutation<MySql> + Sync> MySqlMutation for T {}
15
16pub trait PostgresMutation: Mutation<Postgres> + Sync {}
17impl<T: Mutation<Postgres> + Sync> PostgresMutation for T {}
18
19pub trait SqliteMutation: Mutation<Sqlite> + Sync {}
20impl<T: Mutation<Sqlite> + Sync> SqliteMutation for T {}