Skip to main content

JournalBackend

Trait JournalBackend 

Source
pub trait JournalBackend: Send + Sync {
    // Required methods
    fn acquire_lease(&self) -> Result<Lease, JournalError>;
    fn read_state(&self) -> Result<StoredState, JournalError>;
    fn admit(&self, admission: Admission) -> Result<JournalHead, JournalError>;
    fn put_datum(
        &self,
        object: JournalObject,
    ) -> Result<StoredDatumRef, JournalError>;
    fn get_datum(&self, meaning: &ContentId) -> Result<Datum, JournalError>;
    fn rebuild_datum_index(&self) -> Result<Vec<StoredDatumRef>, JournalError>;
}
Expand description

Object-safe storage seam. A Table backend implements admit with canonical table/cas; it must refuse writes unless CAS and durability are provable.

Required Methods§

Source

fn acquire_lease(&self) -> Result<Lease, JournalError>

Source

fn read_state(&self) -> Result<StoredState, JournalError>

Source

fn admit(&self, admission: Admission) -> Result<JournalHead, JournalError>

Source

fn put_datum( &self, object: JournalObject, ) -> Result<StoredDatumRef, JournalError>

Durably publishes one immutable semantic object without making it a journal retention root.

Source

fn get_datum(&self, meaning: &ContentId) -> Result<Datum, JournalError>

Resolves one semantic object by meaning, returning an owned Datum.

Source

fn rebuild_datum_index(&self) -> Result<Vec<StoredDatumRef>, JournalError>

Rebuilds and verifies the derived semantic-to-storage correspondence.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T: JournalBackend + ?Sized> JournalBackend for Arc<T>

Implementors§