pub trait KvStorageTier<T>: BaseStorageTier{
// Required methods
fn save(&self, key: &str, value: T) -> Result<(), StorageError>;
fn load(&self, key: &str) -> Result<Option<T>, StorageError>;
fn delete(&self, key: &str) -> Result<(), StorageError>;
fn list(&self, prefix: &str) -> Result<Vec<String>, StorageError>;
}Expand description
Key-value tier — typed records under arbitrary string keys with codec
serialization at the storage boundary. Mirrors TS KvStorageTier<T>.
Use for content-addressed caches (replay), multi-record archives (snapshot index, AI memory), and fixture stores. Snapshot is “one record”; append-log is “sequential entries”; kv is “many records, addressable by key”.
Required Methods§
Sourcefn save(&self, key: &str, value: T) -> Result<(), StorageError>
fn save(&self, key: &str, value: T) -> Result<(), StorageError>
Buffer a key→value mapping pending flush. Repeated save(k, _)
before flush overwrites the buffered value for that key. Honors
compact_every cadence.
Sourcefn load(&self, key: &str) -> Result<Option<T>, StorageError>
fn load(&self, key: &str) -> Result<Option<T>, StorageError>
Read the value at key. Returns Ok(None) on miss.
Sourcefn delete(&self, key: &str) -> Result<(), StorageError>
fn delete(&self, key: &str) -> Result<(), StorageError>
Delete the value at key. Flushes through to the backend
immediately (matches TS delete semantics — no debounce).
Sourcefn list(&self, prefix: &str) -> Result<Vec<String>, StorageError>
fn list(&self, prefix: &str) -> Result<Vec<String>, StorageError>
Enumerate keys under prefix (lex-ASC). Delegates to
StorageBackend::list via the tier’s backend.