62 lines
1.7 KiB
Rust
62 lines
1.7 KiB
Rust
use super::RieterDb;
|
|
use sea_orm::{DbBackend, DbErr, ExecResult, QueryResult, Statement};
|
|
use std::{future::Future, pin::Pin};
|
|
|
|
// Allows RieterDb objects to be passed to ORM functions
|
|
impl sea_orm::ConnectionTrait for RieterDb {
|
|
fn get_database_backend(&self) -> DbBackend {
|
|
self.conn.get_database_backend()
|
|
}
|
|
fn execute<'life0, 'async_trait>(
|
|
&'life0 self,
|
|
stmt: Statement,
|
|
) -> Pin<Box<dyn Future<Output = std::result::Result<ExecResult, DbErr>> + Send + 'async_trait>>
|
|
where
|
|
Self: 'async_trait,
|
|
'life0: 'async_trait,
|
|
{
|
|
self.conn.execute(stmt)
|
|
}
|
|
fn execute_unprepared<'life0, 'life1, 'async_trait>(
|
|
&'life0 self,
|
|
sql: &'life1 str,
|
|
) -> Pin<Box<dyn Future<Output = std::result::Result<ExecResult, DbErr>> + Send + 'async_trait>>
|
|
where
|
|
Self: 'async_trait,
|
|
'life0: 'async_trait,
|
|
'life1: 'async_trait,
|
|
{
|
|
self.conn.execute_unprepared(sql)
|
|
}
|
|
fn query_one<'life0, 'async_trait>(
|
|
&'life0 self,
|
|
stmt: Statement,
|
|
) -> Pin<
|
|
Box<
|
|
dyn Future<Output = std::result::Result<Option<QueryResult>, DbErr>>
|
|
+ Send
|
|
+ 'async_trait,
|
|
>,
|
|
>
|
|
where
|
|
Self: 'async_trait,
|
|
'life0: 'async_trait,
|
|
{
|
|
self.conn.query_one(stmt)
|
|
}
|
|
fn query_all<'life0, 'async_trait>(
|
|
&'life0 self,
|
|
stmt: Statement,
|
|
) -> Pin<
|
|
Box<
|
|
dyn Future<Output = std::result::Result<Vec<QueryResult>, DbErr>> + Send + 'async_trait,
|
|
>,
|
|
>
|
|
where
|
|
Self: 'async_trait,
|
|
'life0: 'async_trait,
|
|
{
|
|
self.conn.query_all(stmt)
|
|
}
|
|
}
|