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§
Sourcefn get(&self, object_id: &str) -> Option<KnowledgeObjectV1>
fn get(&self, object_id: &str) -> Option<KnowledgeObjectV1>
Fetch a content-addressed object by its stable object id.
Sourcefn put(&mut self, object: KnowledgeObjectV1) -> Result<(), KnowledgeStoreError>
fn put(&mut self, object: KnowledgeObjectV1) -> Result<(), KnowledgeStoreError>
Insert or replace an object.
Sourcefn query(&self, query: &KnowledgeQuery) -> Vec<KnowledgeObjectV1>
fn query(&self, query: &KnowledgeQuery) -> Vec<KnowledgeObjectV1>
Return objects matching every supplied filter.
Sourcefn supersede(
&mut self,
old_object_id: &str,
replacement: KnowledgeObjectV1,
) -> Result<(), KnowledgeStoreError>
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.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".