pub trait RusqliteConnectionExt {
// Required methods
fn with_transaction<R, E>(
&mut self,
_: &Timeout,
_: TransactionBehavior,
_: impl Fn(&mut DbTransaction<'_>) -> Result<R, DbError<E>>,
) -> Result<R, DbError<E>>;
fn with_transaction_mut_hazard<R, E>(
&mut self,
_: &Timeout,
_: TransactionBehavior,
_: impl FnMut(&mut DbTransaction<'_>) -> Result<R, DbError<E>>,
) -> Result<R, DbError<E>>;
}Expand description
Execute a database transaction
Performs all necessary retries, so f may be called multiple times
Required Methods§
Sourcefn with_transaction<R, E>(
&mut self,
_: &Timeout,
_: TransactionBehavior,
_: impl Fn(&mut DbTransaction<'_>) -> Result<R, DbError<E>>,
) -> Result<R, DbError<E>>
fn with_transaction<R, E>( &mut self, _: &Timeout, _: TransactionBehavior, _: impl Fn(&mut DbTransaction<'_>) -> Result<R, DbError<E>>, ) -> Result<R, DbError<E>>
Run f within a database transaction
Sourcefn with_transaction_mut_hazard<R, E>(
&mut self,
_: &Timeout,
_: TransactionBehavior,
_: impl FnMut(&mut DbTransaction<'_>) -> Result<R, DbError<E>>,
) -> Result<R, DbError<E>>
fn with_transaction_mut_hazard<R, E>( &mut self, _: &Timeout, _: TransactionBehavior, _: impl FnMut(&mut DbTransaction<'_>) -> Result<R, DbError<E>>, ) -> Result<R, DbError<E>>
Run a mutable f within a database transaction
f can be called multiple times to retry, on database timeout
or deadlock. So be careful what you mutate within f!
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.