StorageEngine

Trait StorageEngine 

Source
pub trait StorageEngine {
    // Required methods
    fn append(&self, atom: Atom) -> Result<()>;
    fn get_by_ids(&self, ids: &[AtomId]) -> Result<Vec<Atom>>;
    fn scan(&self, world: &WorldKey, filter: &AtomFilter) -> Result<Vec<Atom>>;
    fn stats(&self, world: &WorldKey) -> Result<StorageStats>;
    fn list_ids_in_window(
        &self,
        world: &WorldKey,
        window: &TimeWindow,
    ) -> Result<Vec<AtomId>>;
    fn delete_atoms(&self, world: &WorldKey, ids: &[AtomId]) -> Result<usize>;
    fn worlds(&self) -> Result<Vec<WorldKey>>;
}
Expand description

Storage engine interface.

Required Methods§

Source

fn append(&self, atom: Atom) -> Result<()>

Source

fn get_by_ids(&self, ids: &[AtomId]) -> Result<Vec<Atom>>

Source

fn scan(&self, world: &WorldKey, filter: &AtomFilter) -> Result<Vec<Atom>>

Source

fn stats(&self, world: &WorldKey) -> Result<StorageStats>

Source

fn list_ids_in_window( &self, world: &WorldKey, window: &TimeWindow, ) -> Result<Vec<AtomId>>

Return atom ids for a world constrained by time window (ms since epoch).

Source

fn delete_atoms(&self, world: &WorldKey, ids: &[AtomId]) -> Result<usize>

Delete atoms by id; returns count removed.

Source

fn worlds(&self) -> Result<Vec<WorldKey>>

List worlds known to the storage implementation.

Implementors§