Storage

Trait Storage 

Source
pub trait Storage: Send + Sync {
Show 16 methods // Required methods fn init_workspace( &self, workspace_id: &WorkspaceId, root_path: &PathBuf, ) -> Result<()>; fn workspace_exists(&self, workspace_id: &WorkspaceId) -> bool; fn load_workspace_metadata( &self, workspace_id: &WorkspaceId, ) -> Result<WorkspaceMetadata>; fn save_workspace_metadata( &self, workspace_id: &WorkspaceId, metadata: &WorkspaceMetadata, ) -> Result<()>; fn save_documents( &self, workspace_id: &WorkspaceId, documents: &[Document], ) -> Result<()>; fn load_documents( &self, workspace_id: &WorkspaceId, ) -> Result<Vec<Document>>; fn save_chunks( &self, workspace_id: &WorkspaceId, chunks: &[Chunk], ) -> Result<()>; fn load_chunks(&self, workspace_id: &WorkspaceId) -> Result<Vec<Chunk>>; fn save_embeddings( &self, workspace_id: &WorkspaceId, embeddings: &[(String, Vec<f32>)], ) -> Result<()>; fn load_embeddings( &self, workspace_id: &WorkspaceId, ) -> Result<Vec<(String, Vec<f32>)>>; fn tantivy_index_path(&self, workspace_id: &WorkspaceId) -> PathBuf; fn vector_index_path(&self, workspace_id: &WorkspaceId) -> PathBuf; fn delete_workspace(&self, workspace_id: &WorkspaceId) -> Result<()>; fn list_workspaces(&self) -> Result<Vec<WorkspaceId>>; fn get_workspace_stats( &self, workspace_id: &WorkspaceId, ) -> Result<WorkspaceStats>; fn flush(&self) -> Result<()>;
}
Expand description

Trait for storage backends.

Required Methods§

Source

fn init_workspace( &self, workspace_id: &WorkspaceId, root_path: &PathBuf, ) -> Result<()>

Initialize storage for a workspace.

Source

fn workspace_exists(&self, workspace_id: &WorkspaceId) -> bool

Check if a workspace exists.

Source

fn load_workspace_metadata( &self, workspace_id: &WorkspaceId, ) -> Result<WorkspaceMetadata>

Load workspace metadata.

Source

fn save_workspace_metadata( &self, workspace_id: &WorkspaceId, metadata: &WorkspaceMetadata, ) -> Result<()>

Save workspace metadata.

Source

fn save_documents( &self, workspace_id: &WorkspaceId, documents: &[Document], ) -> Result<()>

Save documents for a workspace.

Source

fn load_documents(&self, workspace_id: &WorkspaceId) -> Result<Vec<Document>>

Load all documents for a workspace.

Source

fn save_chunks( &self, workspace_id: &WorkspaceId, chunks: &[Chunk], ) -> Result<()>

Save chunks for a workspace.

Source

fn load_chunks(&self, workspace_id: &WorkspaceId) -> Result<Vec<Chunk>>

Load all chunks for a workspace.

Source

fn save_embeddings( &self, workspace_id: &WorkspaceId, embeddings: &[(String, Vec<f32>)], ) -> Result<()>

Save embeddings for chunks.

Source

fn load_embeddings( &self, workspace_id: &WorkspaceId, ) -> Result<Vec<(String, Vec<f32>)>>

Load embeddings for a workspace.

Source

fn tantivy_index_path(&self, workspace_id: &WorkspaceId) -> PathBuf

Get the path to the tantivy index directory.

Source

fn vector_index_path(&self, workspace_id: &WorkspaceId) -> PathBuf

Get the path to the vector index.

Source

fn delete_workspace(&self, workspace_id: &WorkspaceId) -> Result<()>

Delete a workspace and all its data.

Source

fn list_workspaces(&self) -> Result<Vec<WorkspaceId>>

List all stored workspaces.

Source

fn get_workspace_stats( &self, workspace_id: &WorkspaceId, ) -> Result<WorkspaceStats>

Get workspace statistics.

Source

fn flush(&self) -> Result<()>

Flush any pending writes to disk.

Implementors§