qraft_core/dialect.rs
1/// Supplies the target SQL dialect for query compilation.
2pub trait HasDialect {
3 /// Dialect emitted for this marker type.
4 const DIALECT: Dialect;
5}
6
7/// Emits SQL using PostgreSQL syntax.
8pub struct Postgres;
9impl HasDialect for Postgres {
10 const DIALECT: Dialect = Dialect::Postgres;
11}
12
13/// Emits SQL using MariaDB/MySQL syntax.
14pub struct MySql;
15impl HasDialect for MySql {
16 const DIALECT: Dialect = Dialect::MariaDb;
17}
18
19/// Emits SQL using SQLite syntax.
20pub struct Sqlite;
21impl HasDialect for Sqlite {
22 const DIALECT: Dialect = Dialect::Sqlite;
23}
24
25/// The SQL dialect variants `qraft-core` knows how to emit.
26#[derive(Debug, Clone, Copy)]
27pub enum Dialect {
28 Postgres,
29 MariaDb,
30 Sqlite,
31}