use crate::core::{
BulkInsertQuery, CountQuery, DeleteQuery, InsertQuery, SelectQuery, UpdateQuery,
};
use super::{CompiledStatement, SqlError};
pub trait Dialect {
fn compile_select(&self, query: &SelectQuery) -> Result<CompiledStatement, SqlError>;
fn compile_insert(&self, query: &InsertQuery) -> Result<CompiledStatement, SqlError>;
fn compile_bulk_insert(
&self,
query: &BulkInsertQuery,
) -> Result<CompiledStatement, SqlError>;
fn compile_update(&self, query: &UpdateQuery) -> Result<CompiledStatement, SqlError>;
fn compile_delete(&self, query: &DeleteQuery) -> Result<CompiledStatement, SqlError>;
fn compile_count(&self, query: &CountQuery) -> Result<CompiledStatement, SqlError>;
}