Skip to main content

KeyValueStore

Trait KeyValueStore 

Source
pub trait KeyValueStore: Send + Sync {
Show 25 methods // Required methods fn get(&self, key: &[u8]) -> StorageBackendResult<Option<Vec<u8>>>; fn put(&self, key: &[u8], value: &[u8]) -> StorageBackendResult<()>; fn delete(&self, key: &[u8]) -> StorageBackendResult<()>; fn scan_prefix( &self, prefix: &[u8], ) -> StorageBackendResult<Vec<(Vec<u8>, Vec<u8>)>>; fn delete_prefix(&self, prefix: &[u8]) -> StorageBackendResult<usize>; fn batch(&self) -> Box<dyn KeyValueBatch + '_>; fn in_transaction(&self) -> bool; fn transaction_has_written(&self) -> StorageBackendResult<bool>; // Provided methods fn storage_identity( &self, ) -> StorageBackendResult<Option<PersistentStorageIdentity>> { ... } fn open_session(&self) -> StorageBackendResult<Arc<dyn KeyValueStore>> { ... } fn contains_key(&self, key: &[u8]) -> StorageBackendResult<bool> { ... } fn scan_prefix_after( &self, prefix: &[u8], after: Option<&[u8]>, limit: usize, ) -> StorageBackendResult<Vec<(Vec<u8>, Vec<u8>)>> { ... } fn scan_prefix_keys_after( &self, prefix: &[u8], after: Option<&[u8]>, limit: usize, ) -> StorageBackendResult<Vec<Vec<u8>>> { ... } fn first_prefix_after( &self, prefix: &[u8], after: Option<&[u8]>, ) -> StorageBackendResult<Option<(Vec<u8>, Vec<u8>)>> { ... } fn begin_transaction(&self) -> StorageBackendResult<()> { ... } fn begin_read_transaction(&self) -> StorageBackendResult<()> { ... } fn begin_upgradeable_transaction(&self) -> StorageBackendResult<()> { ... } fn change_version(&self) -> StorageBackendResult<Option<u64>> { ... } fn change_version_monitor_is_nonblocking( &self, ) -> StorageBackendResult<bool> { ... } fn pin_transaction_snapshot(&self) -> StorageBackendResult<()> { ... } fn commit_transaction(&self) -> StorageBackendResult<()> { ... } fn rollback_transaction(&self) -> StorageBackendResult<()> { ... } fn savepoint(&self, _name: &str) -> StorageBackendResult<()> { ... } fn release_savepoint(&self, _name: &str) -> StorageBackendResult<()> { ... } fn rollback_to_savepoint(&self, _name: &str) -> StorageBackendResult<()> { ... }
}
Expand description

Ordered byte-key storage used by Key/Value catalog and index backends.

Required Methods§

Source

fn get(&self, key: &[u8]) -> StorageBackendResult<Option<Vec<u8>>>

Source

fn put(&self, key: &[u8], value: &[u8]) -> StorageBackendResult<()>

Source

fn delete(&self, key: &[u8]) -> StorageBackendResult<()>

Source

fn scan_prefix( &self, prefix: &[u8], ) -> StorageBackendResult<Vec<(Vec<u8>, Vec<u8>)>>

Source

fn delete_prefix(&self, prefix: &[u8]) -> StorageBackendResult<usize>

Source

fn batch(&self) -> Box<dyn KeyValueBatch + '_>

Source

fn in_transaction(&self) -> bool

Source

fn transaction_has_written(&self) -> StorageBackendResult<bool>

Provided Methods§

Source

fn storage_identity( &self, ) -> StorageBackendResult<Option<PersistentStorageIdentity>>

Source

fn open_session(&self) -> StorageBackendResult<Arc<dyn KeyValueStore>>

Open an independent transaction session over the same logical store. The default keeps simple test/custom stores source-compatible while making the missing MVCC capability explicit when a persistent engine needs a committed reader alongside a pinned statement snapshot.

Source

fn contains_key(&self, key: &[u8]) -> StorageBackendResult<bool>

Source

fn scan_prefix_after( &self, prefix: &[u8], after: Option<&[u8]>, limit: usize, ) -> StorageBackendResult<Vec<(Vec<u8>, Vec<u8>)>>

Return at most limit key/value pairs in key order, strictly after after when supplied. This is the bounded value cursor used by large format migrations and other paged consumers.

Source

fn scan_prefix_keys_after( &self, prefix: &[u8], after: Option<&[u8]>, limit: usize, ) -> StorageBackendResult<Vec<Vec<u8>>>

Return at most limit keys in key order, strictly after after when it is present. Backends should override this method with a key-only, bounded range scan so cursor consumers neither materialize the entire prefix nor read values they do not need on every page.

Source

fn first_prefix_after( &self, prefix: &[u8], after: Option<&[u8]>, ) -> StorageBackendResult<Option<(Vec<u8>, Vec<u8>)>>

Source

fn begin_transaction(&self) -> StorageBackendResult<()>

Source

fn begin_read_transaction(&self) -> StorageBackendResult<()>

Source

fn begin_upgradeable_transaction(&self) -> StorageBackendResult<()>

Source

fn change_version(&self) -> StorageBackendResult<Option<u64>>

Source

fn change_version_monitor_is_nonblocking(&self) -> StorageBackendResult<bool>

Source

fn pin_transaction_snapshot(&self) -> StorageBackendResult<()>

Source

fn commit_transaction(&self) -> StorageBackendResult<()>

Source

fn rollback_transaction(&self) -> StorageBackendResult<()>

Source

fn savepoint(&self, _name: &str) -> StorageBackendResult<()>

Source

fn release_savepoint(&self, _name: &str) -> StorageBackendResult<()>

Source

fn rollback_to_savepoint(&self, _name: &str) -> StorageBackendResult<()>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§