taitan_orm_trait/traits/
entity.rs

1use crate::result::Result;
2use sqlx::{Arguments, Database, MySql, Postgres, Sqlite};
3use std::borrow::Cow;
4use std::fmt::Debug;
5use crate::traits::Parameter;
6
7pub trait Entity<DB: Database>: Parameter<DB> + Debug {
8    fn gen_insert_sql<'a>(&self) -> Cow<'a, str>;
9    fn gen_upsert_sql<'a>(&self) -> Cow<'a, str>;
10    fn gen_create_sql<'a>(&self) -> Cow<'a, str>;
11}
12
13
14
15pub trait MySqlEntity: Entity<MySql> + Sync {}
16impl<T: Entity<MySql> + Sync> MySqlEntity for T {}
17
18pub trait PostgresEntity: Entity<Postgres> + Sync{}
19impl<T: Entity<Postgres> + Sync> PostgresEntity for T {}
20
21pub trait SqliteEntity: Entity<Sqlite> + Sync {}
22impl<T: Entity<Sqlite> + Sync> SqliteEntity for T {}