sqlx_build_trust_sqlite/
transaction.rs

1use futures_core::future::BoxFuture;
2
3use crate::{Sqlite, SqliteConnection};
4use sqlx_core::error::Error;
5use sqlx_core::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}