cdbc_sqlite/
transaction.rs1use std::ptr;
2
3use libsqlite3_sys::{sqlite3_exec, SQLITE_OK};
4
5use cdbc::error::Error;
6use cdbc::executor::Executor;
7use crate::{Sqlite, SqliteConnection, SqliteError};
8use cdbc::transaction::{
9 begin_ansi_transaction_sql, commit_ansi_transaction_sql, rollback_ansi_transaction_sql,
10 TransactionManager,
11};
12
13pub struct SqliteTransactionManager;
15
16impl TransactionManager for SqliteTransactionManager {
17 type Database = Sqlite;
18
19 fn begin(conn: &mut SqliteConnection) -> Result<(), Error> {
20 conn.worker.begin()
21 }
22
23 fn commit(conn: &mut SqliteConnection) ->Result<(), Error> {
24 conn.worker.commit()
25 }
26
27 fn rollback(conn: &mut SqliteConnection) -> Result<(), Error> {
28 conn.worker.rollback()
29 }
30
31 fn start_rollback(conn: &mut SqliteConnection) {
32 conn.worker.start_rollback().ok();
33 }
34}