sqlx_core_oldapi/odbc/
transaction.rs

1use crate::error::Error;
2use crate::odbc::Odbc;
3use crate::transaction::TransactionManager;
4use futures_core::future::BoxFuture;
5
6pub struct OdbcTransactionManager;
7
8impl TransactionManager for OdbcTransactionManager {
9    type Database = Odbc;
10
11    fn begin(
12        conn: &mut <Self::Database as crate::database::Database>::Connection,
13    ) -> BoxFuture<'_, Result<(), Error>> {
14        Box::pin(async move { conn.begin_blocking().await })
15    }
16
17    fn commit(
18        conn: &mut <Self::Database as crate::database::Database>::Connection,
19    ) -> BoxFuture<'_, Result<(), Error>> {
20        Box::pin(async move { conn.commit_blocking().await })
21    }
22
23    fn rollback(
24        conn: &mut <Self::Database as crate::database::Database>::Connection,
25    ) -> BoxFuture<'_, Result<(), Error>> {
26        Box::pin(async move { conn.rollback_blocking().await })
27    }
28
29    fn start_rollback(_conn: &mut <Self::Database as crate::database::Database>::Connection) {
30        // no-op best effort
31    }
32}