pub trait ISqlGenerator: Send + Sync {
// Required methods
fn select(&self, table: &str, columns: &[&str]) -> String;
fn insert(&self, table: &str, columns: &[&str], returning: bool) -> String;
fn update(
&self,
table: &str,
set_columns: &[&str],
where_clause: &str,
) -> String;
fn delete(&self, table: &str, where_clause: &str) -> String;
fn create_table(&self, table: &str, columns: &[(String, String)]) -> String;
fn drop_table(&self, table: &str) -> String;
fn pagination(&self, skip: Option<usize>, take: Option<usize>) -> String;
fn parameter_placeholder(&self, index: usize) -> String;
fn quote_identifier(&self, identifier: &str) -> String;
fn auto_increment_syntax(&self) -> &'static str;
// Provided method
fn insert_batch(
&self,
table: &str,
columns: &[&str],
row_count: usize,
) -> String { ... }
}Expand description
Represents a SQL dialect with specific syntax for common operations.
Required Methods§
Sourcefn insert(&self, table: &str, columns: &[&str], returning: bool) -> String
fn insert(&self, table: &str, columns: &[&str], returning: bool) -> String
Generates an INSERT statement.
Sourcefn update(
&self,
table: &str,
set_columns: &[&str],
where_clause: &str,
) -> String
fn update( &self, table: &str, set_columns: &[&str], where_clause: &str, ) -> String
Generates an UPDATE statement.
Sourcefn create_table(&self, table: &str, columns: &[(String, String)]) -> String
fn create_table(&self, table: &str, columns: &[(String, String)]) -> String
Generates a CREATE TABLE statement.
Sourcefn drop_table(&self, table: &str) -> String
fn drop_table(&self, table: &str) -> String
Generates a DROP TABLE statement.
Sourcefn pagination(&self, skip: Option<usize>, take: Option<usize>) -> String
fn pagination(&self, skip: Option<usize>, take: Option<usize>) -> String
Generates a pagination clause.
Sourcefn parameter_placeholder(&self, index: usize) -> String
fn parameter_placeholder(&self, index: usize) -> String
Returns the parameter placeholder (e.g., $1 for PG, ? for MySQL).
Sourcefn quote_identifier(&self, identifier: &str) -> String
fn quote_identifier(&self, identifier: &str) -> String
Returns the identifier quoting character (e.g., " for PG, ` for MySQL).
Sourcefn auto_increment_syntax(&self) -> &'static str
fn auto_increment_syntax(&self) -> &'static str
Returns the dialect-specific auto-increment syntax.
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".