Trait GeekConnection

Source
pub trait GeekConnection {
    type Connection;

    // Provided methods
    async fn create_table<T>(connection: &Self::Connection) -> Result<(), Error>
       where T: TableBuilder + QueryBuilderTrait + Sized + Serialize + DeserializeOwned { ... }
    async fn row_count(
        connection: &Self::Connection,
        query: Query,
    ) -> Result<i64, Error> { ... }
    async fn execute(
        connection: &Self::Connection,
        query: Query,
    ) -> Result<(), Error> { ... }
    async fn batch(
        connection: &Self::Connection,
        query: Query,
    ) -> Result<(), Error> { ... }
    async fn query<T>(
        connection: &Self::Connection,
        query: Query,
    ) -> Result<Vec<T>, Error>
       where T: DeserializeOwned { ... }
    async fn query_first<T>(
        connection: &Self::Connection,
        query: Query,
    ) -> Result<T, Error>
       where T: DeserializeOwned { ... }
    async fn query_raw(
        connection: &Self::Connection,
        query: Query,
    ) -> Result<Vec<HashMap<String, Value>>, Error> { ... }
    async fn table_names(
        connection: &Self::Connection,
    ) -> Result<Vec<String>, Error> { ... }
    async fn pragma_info(
        connection: &Self::Connection,
        table: &str,
    ) -> Result<Vec<TableInfo>, Error> { ... }
}
Expand description

GeekConnection is the trait that all backends must implement to be able to interact with the database.

Required Associated Types§

Source

type Connection

Native Connection

Provided Methods§

Source

async fn create_table<T>(connection: &Self::Connection) -> Result<(), Error>

Create a table in the database

Source

async fn row_count( connection: &Self::Connection, query: Query, ) -> Result<i64, Error>

Run a SELECT Count query on the database and return the number of rows

Source

async fn execute( connection: &Self::Connection, query: Query, ) -> Result<(), Error>

Execute a query on the database and do not return any rows

Source

async fn batch(connection: &Self::Connection, query: Query) -> Result<(), Error>

Execute a batch query on the database and do not return any rows

Source

async fn query<T>( connection: &Self::Connection, query: Query, ) -> Result<Vec<T>, Error>

Query the database with an active Connection and Query

Source

async fn query_first<T>( connection: &Self::Connection, query: Query, ) -> Result<T, Error>

Query the database with an active Connection and Query and return the first row.

Note: Make sure the query is limited to 1 row to avoid retrieving multiple rows and only using the first one.

Source

async fn query_raw( connection: &Self::Connection, query: Query, ) -> Result<Vec<HashMap<String, Value>>, Error>

Query the database with an active Connection and Query and return a list of GeekORM Values.

Source

async fn table_names( connection: &Self::Connection, ) -> Result<Vec<String>, Error>

Get Table Names

Source

async fn pragma_info( connection: &Self::Connection, table: &str, ) -> Result<Vec<TableInfo>, Error>

Pragma table info

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.

Implementations on Foreign Types§

Source§

impl GeekConnection for Connection

Source§

type Connection = Connection

Source§

async fn create_table<T>(connection: &Self::Connection) -> Result<(), Error>

Source§

async fn row_count( connection: &Self::Connection, query: Query, ) -> Result<i64, Error>

Source§

async fn query<T>( connection: &Self::Connection, query: Query, ) -> Result<Vec<T>, Error>

Source§

async fn query_first<T>( connection: &Self::Connection, query: Query, ) -> Result<T, Error>

Source§

async fn execute( connection: &Self::Connection, query: Query, ) -> Result<(), Error>

Source§

async fn batch(connection: &Self::Connection, query: Query) -> Result<(), Error>

Source§

async fn query_raw( connection: &Self::Connection, query: Query, ) -> Result<Vec<HashMap<String, Value>>, Error>

Source§

impl GeekConnection for Connection

Source§

type Connection = Connection

Source§

async fn create_table<T>(connection: &Self::Connection) -> Result<(), Error>

Source§

async fn query<T>( connection: &Self::Connection, query: Query, ) -> Result<Vec<T>, Error>

Source§

async fn query_first<T>( connection: &Self::Connection, query: Query, ) -> Result<T, Error>

Source§

async fn execute( connection: &Self::Connection, query: Query, ) -> Result<(), Error>

Source§

async fn batch(connection: &Self::Connection, query: Query) -> Result<(), Error>

Source§

async fn row_count( connection: &Self::Connection, query: Query, ) -> Result<i64, Error>

Source§

impl<C> GeekConnection for Arc<Mutex<C>>
where C: GeekConnection<Connection = Connection>,

Source§

type Connection = Arc<Mutex<Connection>>

Source§

async fn create_table<T>(connection: &Self::Connection) -> Result<(), Error>

Source§

async fn row_count( connection: &Self::Connection, query: Query, ) -> Result<i64, Error>

Source§

async fn query<T>( connection: &Self::Connection, query: Query, ) -> Result<Vec<T>, Error>

Source§

async fn query_first<T>( connection: &Self::Connection, query: Query, ) -> Result<T, Error>

Source§

async fn execute( connection: &Self::Connection, query: Query, ) -> Result<(), Error>

Implementors§

Source§

impl GeekConnection for geekorm_core::backends::connect::Connection<'_>