sqlx_core/any/
transaction.rs1use futures_util::future::BoxFuture;
2use std::borrow::Cow;
3
4use crate::any::{Any, AnyConnection};
5use crate::database::Database;
6use crate::error::Error;
7use crate::transaction::TransactionManager;
8
9pub struct AnyTransactionManager;
10
11impl TransactionManager for AnyTransactionManager {
12 type Database = Any;
13
14 fn begin<'conn>(
15 conn: &'conn mut AnyConnection,
16 statement: Option<Cow<'static, str>>,
17 ) -> BoxFuture<'conn, Result<(), Error>> {
18 conn.backend.begin(statement)
19 }
20
21 fn commit(conn: &mut AnyConnection) -> BoxFuture<'_, Result<(), Error>> {
22 conn.backend.commit()
23 }
24
25 fn rollback(conn: &mut AnyConnection) -> BoxFuture<'_, Result<(), Error>> {
26 conn.backend.rollback()
27 }
28
29 fn start_rollback(conn: &mut AnyConnection) {
30 conn.backend.start_rollback()
31 }
32
33 fn get_transaction_depth(conn: &<Self::Database as Database>::Connection) -> usize {
34 conn.backend.get_transaction_depth()
35 }
36}