/// Supplies the target SQL dialect for query compilation.
pub trait HasDialect {
/// Dialect emitted for this marker type.
const DIALECT: Dialect;
}
/// Emits SQL using PostgreSQL syntax.
pub struct Postgres;
impl HasDialect for Postgres {
const DIALECT: Dialect = Dialect::Postgres;
}
/// Emits SQL using MariaDB/MySQL syntax.
pub struct MySql;
impl HasDialect for MySql {
const DIALECT: Dialect = Dialect::MariaDb;
}
/// Emits SQL using SQLite syntax.
pub struct Sqlite;
impl HasDialect for Sqlite {
const DIALECT: Dialect = Dialect::Sqlite;
}
/// The SQL dialect variants `qraft-core` knows how to emit.
#[derive(Debug, Clone, Copy)]
pub enum Dialect {
Postgres,
MariaDb,
Sqlite,
}