pub trait VortexStorage {
// Required methods
fn get(&self, key: &[u8]) -> Result<Option<Vec<u8>>>;
fn put(&mut self, key: &[u8], value: &[u8]) -> Result<()>;
fn delete(&mut self, key: &[u8]) -> Result<()>;
fn scan(&self, start: &[u8], end: &[u8]) -> Result<Vec<(Vec<u8>, Vec<u8>)>>;
fn write_batch(&mut self, ops: Vec<StorageOp>) -> Result<()>;
fn flush(&mut self) -> Result<()>;
fn snapshot(&self) -> Result<Vec<(Vec<u8>, Vec<u8>)>>;
}Expand description
Persistent storage boundary trait.
In production: real filesystem, RocksDB, SQLite, etc.
In simulation: SimStorage with crash/corruption fault injection.
Required Methods§
Sourcefn scan(&self, start: &[u8], end: &[u8]) -> Result<Vec<(Vec<u8>, Vec<u8>)>>
fn scan(&self, start: &[u8], end: &[u8]) -> Result<Vec<(Vec<u8>, Vec<u8>)>>
Scan a range of keys [start, end).