Skip to main content

CompletionStore

Trait CompletionStore 

Source
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§

Source

fn configure_completion_destination<'a>( &'a self, destination: &'a CompletionDestination, ) -> ContractFuture<'a, ()>

Source

fn subscribe_completion<'a>( &'a self, command: &'a CompletionSubscribeCommand, ) -> ContractFuture<'a, CompletionSubscription>

Source

fn completion_status<'a>( &'a self, scope: &'a Scope, subscription_id: &'a str, ) -> ContractFuture<'a, CompletionSubscription>

Source

fn retry_completion<'a>( &'a self, command: &'a CompletionRetryCommand, ) -> ContractFuture<'a, CompletionSubscription>

Source

fn lease_completions<'a>( &'a self, destination: &'a CompletionDestination, limit: u32, deadline: Instant, ) -> ContractFuture<'a, Vec<CompletionLease>>

Source

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".

Implementors§