pub trait Database: 'static + Sized + Send + Debug + for<'r> HasValueRef<'r, Database = Self> + for<'q> HasArguments<'q, Database = Self> + for<'q> HasStatement<'q, Database = Self> {
type Connection: Connection<Database = Self>;
type TransactionManager: TransactionManager<Database = Self>;
type Row: Row<Database = Self>;
type QueryResult: 'static + Sized + Send + Sync + Default + Extend<Self::QueryResult>;
type Column: Column<Database = Self>;
type TypeInfo: TypeInfo;
type Value: Value<Database = Self> + 'static;
const NAME: &'static str;
const URL_SCHEMES: &'static [&'static str];
}
Expand description
A database driver.
This trait encapsulates a complete set of traits that implement a driver for a specific database (e.g., MySQL, PostgreSQL).
Required Associated Types§
sourcetype Connection: Connection<Database = Self>
type Connection: Connection<Database = Self>
The concrete Connection
implementation for this database.
sourcetype TransactionManager: TransactionManager<Database = Self>
type TransactionManager: TransactionManager<Database = Self>
The concrete TransactionManager
implementation for this database.
sourcetype QueryResult: 'static + Sized + Send + Sync + Default + Extend<Self::QueryResult>
type QueryResult: 'static + Sized + Send + Sync + Default + Extend<Self::QueryResult>
The concrete QueryResult
implementation for this database.
Required Associated Constants§
sourceconst URL_SCHEMES: &'static [&'static str]
const URL_SCHEMES: &'static [&'static str]
The schemes for database URLs that should match this driver.
Object Safety§
This trait is not object safe.