pub trait SqlConn<V: 'static + Sync + Send> {
type Error: HasNotFound;
fn sql_exec<'life0, 'async_trait>(
&'life0 mut self,
query: String,
params: Params<V>
) -> Pin<Box<dyn Future<Output = Result<u64, Self::Error>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn sql_query<'life0, 'async_trait, T>(
&'life0 mut self,
query: String,
params: Params<V>
) -> Pin<Box<dyn Future<Output = Result<Vec<T>, Self::Error>> + Send + 'async_trait>>
where
T: 'async_trait + SqlMapper<ValueType = V> + Sync + Send,
'life0: 'async_trait,
Self: 'async_trait;
fn sql_batch_exec<'life0, 'async_trait>(
&'life0 mut self,
query: String,
params: Vec<Params<V>>
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn create_table<'life0, 'async_trait, T>(
&'life0 mut self
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
where
T: 'async_trait + SqlTable<ValueType = V> + Sync + Send,
'life0: 'async_trait,
Self: Send + 'async_trait,
{ ... }
fn create<'life0, 'async_trait, T>(
&'life0 mut self,
data: T
) -> Pin<Box<dyn Future<Output = Result<u64, Self::Error>> + Send + 'async_trait>>
where
T: 'async_trait + SqlTable<ValueType = V> + Sync + Send,
'life0: 'async_trait,
Self: Send + 'async_trait,
{ ... }
fn save<'life0, 'async_trait, T>(
&'life0 mut self,
data: T
) -> Pin<Box<dyn Future<Output = Result<u64, Self::Error>> + Send + 'async_trait>>
where
T: 'async_trait + SqlTable<ValueType = V> + Sync + Send + Clone,
'life0: 'async_trait,
Self: Send + 'async_trait,
{ ... }
fn load2<'life0, 'async_trait, T, U>(
&'life0 mut self,
builder: QueryBuilder<V>
) -> Pin<Box<dyn Future<Output = Result<Vec<U>, Self::Error>> + Send + 'async_trait>>
where
T: 'async_trait + SqlTable,
U: 'async_trait + SqlMapper<ValueType = V> + Sync + Send,
'life0: 'async_trait,
Self: Send + 'async_trait,
{ ... }
fn load<'life0, 'async_trait, T>(
&'life0 mut self,
builder: QueryBuilder<V>
) -> Pin<Box<dyn Future<Output = Result<Vec<T>, Self::Error>> + Send + 'async_trait>>
where
T: 'async_trait + SqlTable<ValueType = V> + Sync + Send,
'life0: 'async_trait,
Self: Send + 'async_trait,
{ ... }
fn first<'life0, 'async_trait, T>(
&'life0 mut self,
builder: QueryBuilder<V>
) -> Pin<Box<dyn Future<Output = Result<T, Self::Error>> + Send + 'async_trait>>
where
T: 'async_trait + SqlTable<ValueType = V> + Sync + Send,
'life0: 'async_trait,
Self: Send + 'async_trait,
{ ... }
}