Skip to main content

Storage

Trait Storage 

Source
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§

Source

fn init(&mut self) -> StorageResult<()>

Initialize storage (create directories, etc.)

Source

fn save(&mut self, log: &TxLog) -> StorageResult<String>

Save a transaction log, returning the session ID.

Source

fn load(&self, session_id: &str) -> StorageResult<TxLog>

Load a transaction log by session ID.

Source

fn list_sessions(&self) -> StorageResult<Vec<String>>

List all session IDs.

Source

fn sessions_for_project( &self, project_path: &Path, ) -> StorageResult<Vec<String>>

List sessions for a specific project.

Source

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".

Implementors§