Trait engula_kernel::Kernel[][src]

pub trait Kernel: Clone + Send + Sync + 'static {
    type Stream: Stream;
    type Bucket: Bucket;
    fn stream<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Stream>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn bucket<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Bucket>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn apply_update<'life0, 'async_trait>(
        &'life0 self,
        update: KernelUpdate
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn current_version<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Arc<Version>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
;
fn version_updates<'life0, 'async_trait>(
        &'life0 self,
        sequence: Sequence
    ) -> Pin<Box<dyn Future<Output = ResultStream<Arc<VersionUpdate>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

An interface to interact with a kernel.

Associated Types

Required methods

Returns a journal stream.

Returns a storage bucket.

Applies a kernel update.

Returns the current version.

Returns a stream of version updates since a given sequence (inclusive).

Implementors