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§
fn acquire_lease(&self) -> Result<Lease, JournalError>
fn read_state(&self) -> Result<StoredState, JournalError>
fn admit(&self, admission: Admission) -> Result<JournalHead, JournalError>
Sourcefn put_datum(
&self,
object: JournalObject,
) -> Result<StoredDatumRef, JournalError>
fn put_datum( &self, object: JournalObject, ) -> Result<StoredDatumRef, JournalError>
Durably publishes one immutable semantic object without making it a journal retention root.
Sourcefn get_datum(&self, meaning: &ContentId) -> Result<Datum, JournalError>
fn get_datum(&self, meaning: &ContentId) -> Result<Datum, JournalError>
Resolves one semantic object by meaning, returning an owned Datum.
Sourcefn rebuild_datum_index(&self) -> Result<Vec<StoredDatumRef>, JournalError>
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".