pub trait TransactionStore<S: AuthSchema>: Send + Sync {
// Required method
fn transaction_boxed<'life0, 'async_trait>(
&'life0 self,
work: Box<TransactionWork<S>>,
) -> Pin<Box<dyn Future<Output = AuthResult<BoxedTransactionValue>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
// Provided methods
fn transaction_boxed_with_policy<'life0, 'async_trait>(
&'life0 self,
work: Box<TransactionWork<S>>,
policy: AfterCommitErrorPolicy,
) -> Pin<Box<dyn Future<Output = AuthResult<BoxedTransactionValue>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn write_transaction_boxed<'life0, 'async_trait>(
&'life0 self,
work: Box<TransactionWork<S>>,
) -> Pin<Box<dyn Future<Output = AuthResult<BoxedTransactionValue>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
}Required Methods§
fn transaction_boxed<'life0, 'async_trait>(
&'life0 self,
work: Box<TransactionWork<S>>,
) -> Pin<Box<dyn Future<Output = AuthResult<BoxedTransactionValue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Provided Methods§
fn transaction_boxed_with_policy<'life0, 'async_trait>(
&'life0 self,
work: Box<TransactionWork<S>>,
policy: AfterCommitErrorPolicy,
) -> Pin<Box<dyn Future<Output = AuthResult<BoxedTransactionValue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sourcefn write_transaction_boxed<'life0, 'async_trait>(
&'life0 self,
work: Box<TransactionWork<S>>,
) -> Pin<Box<dyn Future<Output = AuthResult<BoxedTransactionValue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn write_transaction_boxed<'life0, 'async_trait>(
&'life0 self,
work: Box<TransactionWork<S>>,
) -> Pin<Box<dyn Future<Output = AuthResult<BoxedTransactionValue>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Run work holding the database write lock from its first statement
(SQLite BEGIN IMMEDIATE), so a read-then-write gate cannot deadlock
concurrent writers. PostgreSQL row locks need no different start.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".