pub trait CompletionStore: Send + Sync {
// Required methods
fn configure_completion_destination<'a>(
&'a self,
destination: &'a CompletionDestination,
) -> ContractFuture<'a, ()>;
fn subscribe_completion<'a>(
&'a self,
command: &'a CompletionSubscribeCommand,
) -> ContractFuture<'a, CompletionSubscription>;
fn completion_status<'a>(
&'a self,
scope: &'a Scope,
subscription_id: &'a str,
) -> ContractFuture<'a, CompletionSubscription>;
fn retry_completion<'a>(
&'a self,
command: &'a CompletionRetryCommand,
) -> ContractFuture<'a, CompletionSubscription>;
fn lease_completions<'a>(
&'a self,
destination: &'a CompletionDestination,
limit: u32,
deadline: Instant,
) -> ContractFuture<'a, Vec<CompletionLease>>;
fn complete_deliveries<'a>(
&'a self,
completions: &'a [CompletionDeliveryResult],
deadline: Instant,
) -> ContractFuture<'a, ()>;
}Expand description
Atomic registration and terminal hooks share the execution row lock. Delivery leasing only locks subscription rows; it must never lock executions afterward.
Required Methods§
fn configure_completion_destination<'a>( &'a self, destination: &'a CompletionDestination, ) -> ContractFuture<'a, ()>
fn subscribe_completion<'a>( &'a self, command: &'a CompletionSubscribeCommand, ) -> ContractFuture<'a, CompletionSubscription>
fn completion_status<'a>( &'a self, scope: &'a Scope, subscription_id: &'a str, ) -> ContractFuture<'a, CompletionSubscription>
fn retry_completion<'a>( &'a self, command: &'a CompletionRetryCommand, ) -> ContractFuture<'a, CompletionSubscription>
fn lease_completions<'a>( &'a self, destination: &'a CompletionDestination, limit: u32, deadline: Instant, ) -> ContractFuture<'a, Vec<CompletionLease>>
fn complete_deliveries<'a>( &'a self, completions: &'a [CompletionDeliveryResult], deadline: Instant, ) -> ContractFuture<'a, ()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".