Skip to main content

KnowledgeStore

Trait KnowledgeStore 

Source
pub trait KnowledgeStore {
    // Required methods
    fn get(&self, object_id: &str) -> Option<KnowledgeObjectV1>;
    fn put(
        &mut self,
        object: KnowledgeObjectV1,
    ) -> Result<(), KnowledgeStoreError>;
    fn query(&self, query: &KnowledgeQuery) -> Vec<KnowledgeObjectV1>;
    fn supersede(
        &mut self,
        old_object_id: &str,
        replacement: KnowledgeObjectV1,
    ) -> Result<(), KnowledgeStoreError>;
    fn delete(&mut self, object_id: &str) -> bool;
}
Expand description

Minimal CRUD and supersession surface shared by local and enterprise stores.

Required Methods§

Source

fn get(&self, object_id: &str) -> Option<KnowledgeObjectV1>

Fetch a content-addressed object by its stable object id.

Source

fn put(&mut self, object: KnowledgeObjectV1) -> Result<(), KnowledgeStoreError>

Insert or replace an object.

Source

fn query(&self, query: &KnowledgeQuery) -> Vec<KnowledgeObjectV1>

Return objects matching every supplied filter.

Source

fn supersede( &mut self, old_object_id: &str, replacement: KnowledgeObjectV1, ) -> Result<(), KnowledgeStoreError>

Store a replacement and link the old object to it through ValidityWindow::superseded_by.

Source

fn delete(&mut self, object_id: &str) -> bool

Delete an object and report whether it existed.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§