use sea_query::{
MysqlQueryBuilder, PostgresQueryBuilder, QueryStatementBuilder, SchemaStatementBuilder,
SqliteQueryBuilder, Values,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Dialect {
MySql,
Postgres,
Sqlite,
}
impl Dialect {
pub fn build_query<S: QueryStatementBuilder>(&self, stmt: &S) -> (String, Values) {
match self {
Dialect::MySql => stmt.build_any(&MysqlQueryBuilder),
Dialect::Postgres => stmt.build_any(&PostgresQueryBuilder),
Dialect::Sqlite => stmt.build_any(&SqliteQueryBuilder),
}
}
pub fn build_schema<S: SchemaStatementBuilder>(&self, stmt: &S) -> String {
match self {
Dialect::MySql => stmt.build_any(&MysqlQueryBuilder),
Dialect::Postgres => stmt.build_any(&PostgresQueryBuilder),
Dialect::Sqlite => stmt.build_any(&SqliteQueryBuilder),
}
}
}