ConnectionTrait

Trait ConnectionTrait 

Source
pub trait ConnectionTrait: Sync {
    // Required methods
    fn get_database_backend(&self) -> DbBackend;
    fn execute_raw<'life0, 'async_trait>(
        &'life0 self,
        stmt: Statement,
    ) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn execute_unprepared<'life0, 'life1, 'async_trait>(
        &'life0 self,
        sql: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn query_one_raw<'life0, 'async_trait>(
        &'life0 self,
        stmt: Statement,
    ) -> Pin<Box<dyn Future<Output = Result<Option<QueryResult>, DbErr>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn query_all_raw<'life0, 'async_trait>(
        &'life0 self,
        stmt: Statement,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<QueryResult>, DbErr>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;

    // Provided methods
    fn execute<'life0, 'life1, 'async_trait, S>(
        &'life0 self,
        stmt: &'life1 S,
    ) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>
       where S: 'async_trait + StatementBuilder,
             Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn query_one<'life0, 'life1, 'async_trait, S>(
        &'life0 self,
        stmt: &'life1 S,
    ) -> Pin<Box<dyn Future<Output = Result<Option<QueryResult>, DbErr>> + Send + 'async_trait>>
       where S: 'async_trait + StatementBuilder,
             Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn query_all<'life0, 'life1, 'async_trait, S>(
        &'life0 self,
        stmt: &'life1 S,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<QueryResult>, DbErr>> + Send + 'async_trait>>
       where S: 'async_trait + StatementBuilder,
             Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
    fn support_returning(&self) -> bool { ... }
    fn is_mock_connection(&self) -> bool { ... }
}
Expand description

The generic API for a database connection that can perform query or execute statements. It abstracts database connection and transaction

Required Methods§

Source

fn get_database_backend(&self) -> DbBackend

Get the database backend for the connection. This depends on feature flags enabled.

Source

fn execute_raw<'life0, 'async_trait>( &'life0 self, stmt: Statement, ) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Execute a Statement

Source

fn execute_unprepared<'life0, 'life1, 'async_trait>( &'life0 self, sql: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Execute a unprepared Statement

Source

fn query_one_raw<'life0, 'async_trait>( &'life0 self, stmt: Statement, ) -> Pin<Box<dyn Future<Output = Result<Option<QueryResult>, DbErr>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Execute a Statement and return a single row of QueryResult

Source

fn query_all_raw<'life0, 'async_trait>( &'life0 self, stmt: Statement, ) -> Pin<Box<dyn Future<Output = Result<Vec<QueryResult>, DbErr>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Execute a Statement and return a vector of QueryResult

Provided Methods§

Source

fn execute<'life0, 'life1, 'async_trait, S>( &'life0 self, stmt: &'life1 S, ) -> Pin<Box<dyn Future<Output = Result<ExecResult, DbErr>> + Send + 'async_trait>>
where S: 'async_trait + StatementBuilder, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Execute a [QueryStatement]

Source

fn query_one<'life0, 'life1, 'async_trait, S>( &'life0 self, stmt: &'life1 S, ) -> Pin<Box<dyn Future<Output = Result<Option<QueryResult>, DbErr>> + Send + 'async_trait>>
where S: 'async_trait + StatementBuilder, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Execute a [QueryStatement] and return a single row of QueryResult

Source

fn query_all<'life0, 'life1, 'async_trait, S>( &'life0 self, stmt: &'life1 S, ) -> Pin<Box<dyn Future<Output = Result<Vec<QueryResult>, DbErr>> + Send + 'async_trait>>
where S: 'async_trait + StatementBuilder, Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Execute a [QueryStatement] and return a vector of QueryResult

Source

fn support_returning(&self) -> bool

Check if the connection supports RETURNING syntax on insert and update

Source

fn is_mock_connection(&self) -> bool

Check if the connection is a test connection for the Mock database

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§

Source§

impl ConnectionTrait for DatabaseConnection

Source§

impl ConnectionTrait for DatabaseTransaction

Source§

impl ConnectionTrait for RestrictedConnection

Available on crate feature rbac only.
Source§

impl ConnectionTrait for RestrictedTransaction

Available on crate feature rbac only.