sqlx_core_oldapi/sqlite/
transaction.rs

1use futures_core::future::BoxFuture;
2
3use crate::error::Error;
4use crate::sqlite::{Sqlite, SqliteConnection};
5use crate::transaction::TransactionManager;
6
7/// Implementation of [`TransactionManager`] for SQLite.
8pub struct SqliteTransactionManager;
9
10impl TransactionManager for SqliteTransactionManager {
11    type Database = Sqlite;
12
13    fn begin(conn: &mut SqliteConnection) -> BoxFuture<'_, Result<(), Error>> {
14        Box::pin(conn.worker.begin())
15    }
16
17    fn commit(conn: &mut SqliteConnection) -> BoxFuture<'_, Result<(), Error>> {
18        Box::pin(conn.worker.commit())
19    }
20
21    fn rollback(conn: &mut SqliteConnection) -> BoxFuture<'_, Result<(), Error>> {
22        Box::pin(conn.worker.rollback())
23    }
24
25    fn start_rollback(conn: &mut SqliteConnection) {
26        conn.worker.start_rollback().ok();
27    }
28}