sql_middleware/typed/
impl_sqlite.rs1use super::traits::{BeginTx, Queryable, TxConn, TypedConnOps};
4use crate::SqlMiddlewareDbError;
5use crate::sqlite::typed::{Idle as SqIdle, InTx as SqInTx, SqliteTypedConnection};
6use crate::{middleware::RowValues, query_builder::QueryBuilder, results::ResultSet};
7
8impl Queryable for SqliteTypedConnection<SqIdle> {
9 fn query<'a>(&'a mut self, sql: &'a str) -> QueryBuilder<'a, 'a> {
10 self.query(sql)
11 }
12}
13
14impl Queryable for SqliteTypedConnection<SqInTx> {
15 fn query<'a>(&'a mut self, sql: &'a str) -> QueryBuilder<'a, 'a> {
16 self.query(sql)
17 }
18}
19
20impl TypedConnOps for SqliteTypedConnection<SqIdle> {
21 #[allow(clippy::manual_async_fn)]
22 fn execute_batch(
23 &mut self,
24 sql: &str,
25 ) -> impl std::future::Future<Output = Result<(), SqlMiddlewareDbError>> {
26 async move { self.execute_batch(sql).await }
27 }
28
29 #[allow(clippy::manual_async_fn)]
30 fn dml(
31 &mut self,
32 query: &str,
33 params: &[RowValues],
34 ) -> impl std::future::Future<Output = Result<usize, SqlMiddlewareDbError>> {
35 async move { self.dml(query, params).await }
36 }
37
38 #[allow(clippy::manual_async_fn)]
39 fn select(
40 &mut self,
41 query: &str,
42 params: &[RowValues],
43 ) -> impl std::future::Future<Output = Result<ResultSet, SqlMiddlewareDbError>> {
44 async move { self.select(query, params).await }
45 }
46}
47
48impl TypedConnOps for SqliteTypedConnection<SqInTx> {
49 #[allow(clippy::manual_async_fn)]
50 fn execute_batch(
51 &mut self,
52 sql: &str,
53 ) -> impl std::future::Future<Output = Result<(), SqlMiddlewareDbError>> {
54 async move { self.execute_batch(sql).await }
55 }
56
57 #[allow(clippy::manual_async_fn)]
58 fn dml(
59 &mut self,
60 query: &str,
61 params: &[RowValues],
62 ) -> impl std::future::Future<Output = Result<usize, SqlMiddlewareDbError>> {
63 async move { self.dml(query, params).await }
64 }
65
66 #[allow(clippy::manual_async_fn)]
67 fn select(
68 &mut self,
69 query: &str,
70 params: &[RowValues],
71 ) -> impl std::future::Future<Output = Result<ResultSet, SqlMiddlewareDbError>> {
72 async move { self.select(query, params).await }
73 }
74}
75
76impl BeginTx for SqliteTypedConnection<SqIdle> {
77 type Tx = SqliteTypedConnection<SqInTx>;
78
79 #[allow(clippy::manual_async_fn)]
80 fn begin(self) -> impl std::future::Future<Output = Result<Self::Tx, SqlMiddlewareDbError>> {
81 async move { self.begin().await }
82 }
83}
84
85impl TxConn for SqliteTypedConnection<SqInTx> {
86 type Idle = SqliteTypedConnection<SqIdle>;
87
88 #[allow(clippy::manual_async_fn)]
89 fn commit(self) -> impl std::future::Future<Output = Result<Self::Idle, SqlMiddlewareDbError>> {
90 async move { self.commit().await }
91 }
92
93 #[allow(clippy::manual_async_fn)]
94 fn rollback(
95 self,
96 ) -> impl std::future::Future<Output = Result<Self::Idle, SqlMiddlewareDbError>> {
97 async move { self.rollback().await }
98 }
99}