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§
Sourcefn init_workspace(
&self,
workspace_id: &WorkspaceId,
root_path: &PathBuf,
) -> Result<()>
fn init_workspace( &self, workspace_id: &WorkspaceId, root_path: &PathBuf, ) -> Result<()>
Initialize storage for a workspace.
Sourcefn workspace_exists(&self, workspace_id: &WorkspaceId) -> bool
fn workspace_exists(&self, workspace_id: &WorkspaceId) -> bool
Check if a workspace exists.
Sourcefn load_workspace_metadata(
&self,
workspace_id: &WorkspaceId,
) -> Result<WorkspaceMetadata>
fn load_workspace_metadata( &self, workspace_id: &WorkspaceId, ) -> Result<WorkspaceMetadata>
Load workspace metadata.
Sourcefn save_workspace_metadata(
&self,
workspace_id: &WorkspaceId,
metadata: &WorkspaceMetadata,
) -> Result<()>
fn save_workspace_metadata( &self, workspace_id: &WorkspaceId, metadata: &WorkspaceMetadata, ) -> Result<()>
Save workspace metadata.
Sourcefn save_documents(
&self,
workspace_id: &WorkspaceId,
documents: &[Document],
) -> Result<()>
fn save_documents( &self, workspace_id: &WorkspaceId, documents: &[Document], ) -> Result<()>
Save documents for a workspace.
Sourcefn load_documents(&self, workspace_id: &WorkspaceId) -> Result<Vec<Document>>
fn load_documents(&self, workspace_id: &WorkspaceId) -> Result<Vec<Document>>
Load all documents for a workspace.
Sourcefn save_chunks(
&self,
workspace_id: &WorkspaceId,
chunks: &[Chunk],
) -> Result<()>
fn save_chunks( &self, workspace_id: &WorkspaceId, chunks: &[Chunk], ) -> Result<()>
Save chunks for a workspace.
Sourcefn load_chunks(&self, workspace_id: &WorkspaceId) -> Result<Vec<Chunk>>
fn load_chunks(&self, workspace_id: &WorkspaceId) -> Result<Vec<Chunk>>
Load all chunks for a workspace.
Sourcefn save_embeddings(
&self,
workspace_id: &WorkspaceId,
embeddings: &[(String, Vec<f32>)],
) -> Result<()>
fn save_embeddings( &self, workspace_id: &WorkspaceId, embeddings: &[(String, Vec<f32>)], ) -> Result<()>
Save embeddings for chunks.
Sourcefn load_embeddings(
&self,
workspace_id: &WorkspaceId,
) -> Result<Vec<(String, Vec<f32>)>>
fn load_embeddings( &self, workspace_id: &WorkspaceId, ) -> Result<Vec<(String, Vec<f32>)>>
Load embeddings for a workspace.
Sourcefn tantivy_index_path(&self, workspace_id: &WorkspaceId) -> PathBuf
fn tantivy_index_path(&self, workspace_id: &WorkspaceId) -> PathBuf
Get the path to the tantivy index directory.
Sourcefn vector_index_path(&self, workspace_id: &WorkspaceId) -> PathBuf
fn vector_index_path(&self, workspace_id: &WorkspaceId) -> PathBuf
Get the path to the vector index.
Sourcefn delete_workspace(&self, workspace_id: &WorkspaceId) -> Result<()>
fn delete_workspace(&self, workspace_id: &WorkspaceId) -> Result<()>
Delete a workspace and all its data.
Sourcefn list_workspaces(&self) -> Result<Vec<WorkspaceId>>
fn list_workspaces(&self) -> Result<Vec<WorkspaceId>>
List all stored workspaces.
Sourcefn get_workspace_stats(
&self,
workspace_id: &WorkspaceId,
) -> Result<WorkspaceStats>
fn get_workspace_stats( &self, workspace_id: &WorkspaceId, ) -> Result<WorkspaceStats>
Get workspace statistics.