INNER CODE UNIT · Rust
conn
aannoo/hcom · src/db/mod.rs:144
pub fn conn(&self) -> &Connection {
&self.conn
}
/// Run `f` inside a `BEGIN IMMEDIATE` transaction and commit on success.
///
/// The immediate write lock makes read-modify-write sequences atomic
/// across the separate database connections used by hook processes.
/// Queries inside `f` must use the provided transaction.
pub fn with_immediate_transaction<T>(
&self,
f: impl FnOnce(&Transaction<'_>) -> Result<T>,
) -> Result<T> {
let txn = Transaction::new_unchecked(&self.conn, TransactionBehavior::Immediate)?;
let result = f(&txn)?;
txn.commit()?;
Ok(result)
}