mirror of
https://github.com/launchbadge/sqlx.git
synced 2025-11-26 19:37:03 +00:00
* WIP rt refactors * refactor: break drivers out into separate crates also cleans up significant technical debt
29 lines
821 B
Rust
29 lines
821 B
Rust
use futures_core::future::BoxFuture;
|
|
|
|
use crate::{Sqlite, SqliteConnection};
|
|
use sqlx_core::error::Error;
|
|
use sqlx_core::transaction::TransactionManager;
|
|
|
|
/// Implementation of [`TransactionManager`] for SQLite.
|
|
pub struct SqliteTransactionManager;
|
|
|
|
impl TransactionManager for SqliteTransactionManager {
|
|
type Database = Sqlite;
|
|
|
|
fn begin(conn: &mut SqliteConnection) -> BoxFuture<'_, Result<(), Error>> {
|
|
Box::pin(conn.worker.begin())
|
|
}
|
|
|
|
fn commit(conn: &mut SqliteConnection) -> BoxFuture<'_, Result<(), Error>> {
|
|
Box::pin(conn.worker.commit())
|
|
}
|
|
|
|
fn rollback(conn: &mut SqliteConnection) -> BoxFuture<'_, Result<(), Error>> {
|
|
Box::pin(conn.worker.rollback())
|
|
}
|
|
|
|
fn start_rollback(conn: &mut SqliteConnection) {
|
|
conn.worker.start_rollback().ok();
|
|
}
|
|
}
|