pub trait BillingTransactionCoordinator: Send + Sync {
// Required method
fn begin<'life0, 'async_trait>(
&'life0 self,
subject: BillingEventSubject,
lock_timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn BillingTransaction>, BillingTransactionError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Host-prepared transaction whose subject authorization lock is acquired before any shared billing lock.
Required Methods§
Sourcefn begin<'life0, 'async_trait>(
&'life0 self,
subject: BillingEventSubject,
lock_timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn BillingTransaction>, BillingTransactionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn begin<'life0, 'async_trait>(
&'life0 self,
subject: BillingEventSubject,
lock_timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn BillingTransaction>, BillingTransactionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Begins a host transaction and locks the exact event subject before any shared billing row lock is acquired.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".