Driver

Trait Driver 

Source
pub trait Driver: Default + Debug {
    type Connection: Connection<Driver = Self>;
    type SqlWriter: SqlWriter;
    type Prepared: Prepared;
    type Transaction<'c>: Transaction<'c>;

    const NAME: &'static [&'static str];

    // Required method
    fn sql_writer(&self) -> Self::SqlWriter;

    // Provided methods
    fn name(&self) -> &'static str { ... }
    fn connect(
        &self,
        url: Cow<'static, str>,
    ) -> impl Future<Output = Result<Self::Connection>> { ... }
}
Expand description

Backend connector and SQL dialect provider.

Required Associated Constants§

Source

const NAME: &'static [&'static str]

Human-readable backend name.

Required Associated Types§

Source

type Connection: Connection<Driver = Self>

Concrete connection.

Source

type SqlWriter: SqlWriter

SQL dialect writer.

Source

type Prepared: Prepared

Prepared statement handle.

Source

type Transaction<'c>: Transaction<'c>

Transaction type.

Required Methods§

Source

fn sql_writer(&self) -> Self::SqlWriter

Create a SQL writer.

Returns a writer capable of rendering SQL for this driver’s dialect. Writers are expected to be cheap to construct as they are usually stateless.

Provided Methods§

Source

fn name(&self) -> &'static str

Driver name (used in URLs).

Source

fn connect( &self, url: Cow<'static, str>, ) -> impl Future<Output = Result<Self::Connection>>

Connect to database url.

The returned future must be awaited to obtain the connection object. Implementations may perform I/O or validation during connection.

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.

Implementors§