sqlx_rqlite/
transaction.rs

1use futures_core::future::BoxFuture;
2
3use crate::{Rqlite, RqliteConnection};
4use sqlx_core::error::Error;
5use sqlx_core::transaction::TransactionManager;
6
7/// Implementation of [`TransactionManager`] for SQLite.
8pub struct RqliteTransactionManager;
9
10impl TransactionManager for RqliteTransactionManager {
11    type Database = Rqlite;
12
13    fn begin(_conn: &mut RqliteConnection) -> BoxFuture<'_, Result<(), Error>> {
14        Box::pin(async {
15            Err(Error::Io(std::io::Error::new(
16                std::io::ErrorKind::Other,
17                "begin not supported",
18            )))
19        })
20    }
21
22    fn commit(_conn: &mut RqliteConnection) -> BoxFuture<'_, Result<(), Error>> {
23        Box::pin(async {
24            Err(Error::Io(std::io::Error::new(
25                std::io::ErrorKind::Other,
26                "commit not supported",
27            )))
28        })
29    }
30
31    fn rollback(_conn: &mut RqliteConnection) -> BoxFuture<'_, Result<(), Error>> {
32        Box::pin(async {
33            Err(Error::Io(std::io::Error::new(
34                std::io::ErrorKind::Other,
35                "rollback not supported",
36            )))
37        })
38    }
39
40    fn start_rollback(_conn: &mut RqliteConnection) {
41        //conn.worker.start_rollback().ok();
42    }
43}