use crate::entry::{ContextEntry, ScoredEntry};
use crate::error::Error;
pub type Result<T> = std::result::Result<T, Error>;
pub trait ContextStorage: Send + Sync {
fn save(&self, entry: &ContextEntry) -> Result<()>;
fn get_top_k(&self, k: usize) -> Result<Vec<ContextEntry>>;
fn get_all(&self) -> Result<Vec<ContextEntry>>;
fn delete(&self, id: &str) -> Result<bool>;
fn clear(&self) -> Result<usize>;
fn clear_scope(&self, scope: &str) -> Result<usize>;
fn count(&self) -> Result<usize>;
}
pub trait Searcher: Send + Sync {
fn search(&self, query: &str, scope: Option<&str>, limit: usize) -> Result<Vec<ScoredEntry>>;
}