Skip to main content

sql_middleware/typed/any/
queryable.rs

1use crate::query_builder::QueryBuilder;
2use crate::typed::traits::Queryable;
3
4use super::{AnyIdle, AnyTx};
5
6impl Queryable for AnyIdle {
7    fn query<'a>(&'a mut self, sql: &'a str) -> QueryBuilder<'a, 'a> {
8        match self {
9            #[cfg(feature = "postgres")]
10            AnyIdle::Postgres(conn) => conn.query(sql),
11            #[cfg(feature = "sqlite")]
12            AnyIdle::Sqlite(conn) => conn.query(sql),
13            #[cfg(feature = "mssql")]
14            AnyIdle::Mssql(conn) => conn.query(sql),
15            #[cfg(feature = "turso")]
16            AnyIdle::Turso(conn) => conn.query(sql),
17            #[allow(unreachable_patterns)]
18            _ => unreachable!("typed backends are not enabled"),
19        }
20    }
21}
22
23impl Queryable for AnyTx {
24    fn query<'a>(&'a mut self, sql: &'a str) -> QueryBuilder<'a, 'a> {
25        match self {
26            #[cfg(feature = "postgres")]
27            AnyTx::Postgres(conn) => conn.query(sql),
28            #[cfg(feature = "sqlite")]
29            AnyTx::Sqlite(conn) => conn.query(sql),
30            #[cfg(feature = "mssql")]
31            AnyTx::Mssql(conn) => conn.query(sql),
32            #[cfg(feature = "turso")]
33            AnyTx::Turso(conn) => conn.query(sql),
34            #[allow(unreachable_patterns)]
35            _ => unreachable!("typed backends are not enabled"),
36        }
37    }
38}