diesel::connection

Trait TransactionManager

Source
pub trait TransactionManager<Conn: Connection> {
    // Required methods
    fn begin_transaction(&self, conn: &Conn) -> QueryResult<()>;
    fn rollback_transaction(&self, conn: &Conn) -> QueryResult<()>;
    fn commit_transaction(&self, conn: &Conn) -> QueryResult<()>;
    fn get_transaction_depth(&self) -> u32;
}
Expand description

Manages the internal transaction state for a connection.

You will not need to interact with this trait, unless you are writing an implementation of Connection.

Required Methods§

Source

fn begin_transaction(&self, conn: &Conn) -> QueryResult<()>

Begin a new transaction or savepoint

If the transaction depth is greater than 0, this should create a savepoint instead. This function is expected to increment the transaction depth by 1.

Source

fn rollback_transaction(&self, conn: &Conn) -> QueryResult<()>

Rollback the inner-most transaction or savepoint

If the transaction depth is greater than 1, this should rollback to the most recent savepoint. This function is expected to decrement the transaction depth by 1.

Source

fn commit_transaction(&self, conn: &Conn) -> QueryResult<()>

Commit the inner-most transaction or savepoint

If the transaction depth is greater than 1, this should release the most recent savepoint. This function is expected to decrement the transaction depth by 1.

Source

fn get_transaction_depth(&self) -> u32

Fetch the current transaction depth

Used to ensure that begin_test_transaction is not called when already inside of a transaction.

Implementors§