Skip to main content

ProviderProbeJournal

Trait ProviderProbeJournal 

Source
pub trait ProviderProbeJournal: Send + Sync {
    // Required methods
    fn load<'life0, 'async_trait>(
        &'life0 self,
        probe_id: ProviderProbeId,
    ) -> Pin<Box<dyn Future<Output = Result<Option<ProviderProbeJournalRecord>, StorageError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn begin<'life0, 'async_trait>(
        &'life0 self,
        prepared: ProviderProbeJournalRecord,
    ) -> Pin<Box<dyn Future<Output = Result<ProviderProbeJournalRecord, StorageError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn advance<'life0, 'life1, 'async_trait>(
        &'life0 self,
        previous: &'life1 ProviderProbeJournalRecord,
        next: ProviderProbeJournalRecord,
    ) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}

Required Methods§

Source

fn load<'life0, 'async_trait>( &'life0 self, probe_id: ProviderProbeId, ) -> Pin<Box<dyn Future<Output = Result<Option<ProviderProbeJournalRecord>, StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn begin<'life0, 'async_trait>( &'life0 self, prepared: ProviderProbeJournalRecord, ) -> Pin<Box<dyn Future<Output = Result<ProviderProbeJournalRecord, StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Atomically inserts prepared when absent or returns the exact existing record for this probe id. A different record under the id is corruption.

Source

fn advance<'life0, 'life1, 'async_trait>( &'life0 self, previous: &'life1 ProviderProbeJournalRecord, next: ProviderProbeJournalRecord, ) -> Pin<Box<dyn Future<Output = Result<(), StorageError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Atomically replaces the exact current record. Implementations reject a stale predecessor instead of merging progress.

Implementors§