use std::collections::HashMap;
use crate::{Query, QueryBuilderTrait, TableBuilder, Value};
pub trait GeekConnection
where
Self: Sized,
{
type Connection;
type Error;
type Statement;
#[allow(async_fn_in_trait, unused_variables)]
async fn prepare(&self, query: &str) -> Result<Self::Statement, Self::Error>;
}
#[cfg(feature = "libsql")]
pub mod libsql;
pub trait GeekConnector
where
Self: TableBuilder + QueryBuilderTrait + Sized + serde::Serialize + serde::de::DeserializeOwned,
{
type Connection;
type Row;
type Rows;
#[allow(async_fn_in_trait, unused_variables)]
async fn create_table(connection: &Self::Connection) -> Result<(), crate::Error> {
Err(crate::Error::NotImplemented)
}
#[allow(async_fn_in_trait, unused_variables)]
async fn row_count(connection: &Self::Connection, query: Query) -> Result<i64, crate::Error> {
Err(crate::Error::NotImplemented)
}
#[allow(async_fn_in_trait, unused_variables)]
async fn execute(connection: &Self::Connection, query: Query) -> Result<(), crate::Error> {
Err(crate::Error::NotImplemented)
}
#[allow(async_fn_in_trait, unused_variables)]
async fn query(
connection: &Self::Connection,
query: Query,
) -> Result<Self::Rows, crate::Error> {
Err(crate::Error::NotImplemented)
}
#[allow(async_fn_in_trait, unused_variables)]
async fn query_first(
connection: &Self::Connection,
query: Query,
) -> Result<Self::Row, crate::Error> {
Err(crate::Error::NotImplemented)
}
#[allow(async_fn_in_trait, unused_variables)]
async fn query_raw(
connection: &Self::Connection,
query: Query,
) -> Result<Vec<HashMap<String, Value>>, crate::Error> {
Err(crate::Error::NotImplemented)
}
}