pub trait DatabaseDialect {
// Required methods
fn backend_name(&self) -> &str;
fn get_encode_placeholder_fn(&self) -> Option<fn(usize, &mut String)>;
fn write_count_sql(&self, sql: &mut String);
fn write_page_sql<'c, 'q, DB>(
&self,
sql: &mut String,
page_size: i64,
page_no: i64,
arg: &mut DB::Arguments<'q>,
) -> Result<(), Error>
where DB: Database,
i64: Encode<'q, DB> + Type<DB>;
}
Expand description
Abstracts SQL dialect differences across database systems
Provides a unified interface for handling database-specific SQL syntax variations, particularly for parameter binding, count queries, and pagination.
Required Methods§
Sourcefn backend_name(&self) -> &str
fn backend_name(&self) -> &str
Returns the name of the database backend in use (e.g. PostgreSQL, MySQL, SQLite, etc.)
Sourcefn get_encode_placeholder_fn(&self) -> Option<fn(usize, &mut String)>
fn get_encode_placeholder_fn(&self) -> Option<fn(usize, &mut String)>
Gets placeholder generation function for parameter binding
Database-specific placeholder formats:
- PostgreSQL: $1, $2…
- MySQL/SQLite: ?
§Returns
Option<fn(usize, &mut String)> placeholder generation function
Sourcefn write_count_sql(&self, sql: &mut String)
fn write_count_sql(&self, sql: &mut String)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.