pub trait Storage: Send + Sync {
// Required methods
fn init(&mut self) -> StorageResult<()>;
fn save(&mut self, log: &TxLog) -> StorageResult<String>;
fn load(&self, session_id: &str) -> StorageResult<TxLog>;
fn list_sessions(&self) -> StorageResult<Vec<String>>;
fn sessions_for_project(
&self,
project_path: &Path,
) -> StorageResult<Vec<String>>;
fn delete(&mut self, session_id: &str) -> StorageResult<()>;
}Expand description
Abstract storage trait for session persistence.
This trait is implemented by ryo-storage crate and injected into Api.
Required Methods§
Sourcefn init(&mut self) -> StorageResult<()>
fn init(&mut self) -> StorageResult<()>
Initialize storage (create directories, etc.)
Sourcefn save(&mut self, log: &TxLog) -> StorageResult<String>
fn save(&mut self, log: &TxLog) -> StorageResult<String>
Save a transaction log, returning the session ID.
Sourcefn load(&self, session_id: &str) -> StorageResult<TxLog>
fn load(&self, session_id: &str) -> StorageResult<TxLog>
Load a transaction log by session ID.
Sourcefn list_sessions(&self) -> StorageResult<Vec<String>>
fn list_sessions(&self) -> StorageResult<Vec<String>>
List all session IDs.
Sourcefn sessions_for_project(
&self,
project_path: &Path,
) -> StorageResult<Vec<String>>
fn sessions_for_project( &self, project_path: &Path, ) -> StorageResult<Vec<String>>
List sessions for a specific project.
Sourcefn delete(&mut self, session_id: &str) -> StorageResult<()>
fn delete(&mut self, session_id: &str) -> StorageResult<()>
Delete a session by ID.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".