Trait DatabasePool

Source
pub trait DatabasePool {
    // Required methods
    fn initiate<'life0, 'life1, 'async_trait>(
        &'life0 self,
        table_name: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn count<'life0, 'life1, 'async_trait>(
        &'life0 self,
        table_name: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<i64, DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn store<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        id: &'life1 str,
        session: &'life2 str,
        expires: i64,
        table_name: &'life3 str,
    ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait;
    fn load<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        id: &'life1 str,
        table_name: &'life2 str,
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn delete_one_by_id<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        id: &'life1 str,
        table_name: &'life2 str,
    ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        id: &'life1 str,
        table_name: &'life2 str,
    ) -> Pin<Box<dyn Future<Output = Result<bool, DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn delete_by_expiry<'life0, 'life1, 'async_trait>(
        &'life0 self,
        table_name: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn delete_all<'life0, 'life1, 'async_trait>(
        &'life0 self,
        table_name: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn get_ids<'life0, 'life1, 'async_trait>(
        &'life0 self,
        table_name: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn auto_handles_expiry(&self) -> bool;
}
Expand description

The Trait used to identify a database pool.

This can be freely implemented but default implementations for the supported database types are already included If you’re using a custom database library than you should use the Generic*Error in the DatabaseError enum to indicate an error.

Required Methods§

Source

fn initiate<'life0, 'life1, 'async_trait>( &'life0 self, table_name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

This is called to create the table in the database using the given table name. if an error occurs it should be propagated to the caller.

Source

fn count<'life0, 'life1, 'async_trait>( &'life0 self, table_name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<i64, DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

This is called to receive the session count in the database using the given table name. if an error occurs it should be propagated to the caller.

Source

fn store<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, id: &'life1 str, session: &'life2 str, expires: i64, table_name: &'life3 str, ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

This is called to store a session in the database using the given table name. The session is a string and should be stored in its own field. if an error occurs it should be propagated to the caller. expires is a unix timestamp(number of non-leap seconds since January 1, 1970 0:00:00 UTC) which is set to UTC::now() + the expiration time.

Source

fn load<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 str, table_name: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

This is called to receive the session from the database using the given table name. if an error occurs it should be propagated to the caller.

Source

fn delete_one_by_id<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 str, table_name: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

This is called to delete one session from the database using the given table name. if an error occurs it should be propagated to the caller.

Source

fn exists<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, id: &'life1 str, table_name: &'life2 str, ) -> Pin<Box<dyn Future<Output = Result<bool, DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

This is called to check if the id exists in the database using the given table name. if an error occurs it should be propagated to the caller.

Source

fn delete_by_expiry<'life0, 'life1, 'async_trait>( &'life0 self, table_name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

This is called to delete all sessions that expired from the database using the given table name. if an error occurs it should be propagated to the caller.

Source

fn delete_all<'life0, 'life1, 'async_trait>( &'life0 self, table_name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

This is called to delete all sessions from the database using the given table name. if an error occurs it should be propagated to the caller.

Source

fn get_ids<'life0, 'life1, 'async_trait>( &'life0 self, table_name: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

This is called to get all id’s in the database from the last run. if an error occurs it should be propagated to the caller.

Source

fn auto_handles_expiry(&self) -> bool

Implementors§