pub struct MemoryKeyValueStore { /* private fields */ }Expand description
In-memory Key/Value store used by trait-level tests and future non-SQL fixtures.
Implementations§
Trait Implementations§
Source§impl Debug for MemoryKeyValueStore
impl Debug for MemoryKeyValueStore
Source§impl Default for MemoryKeyValueStore
impl Default for MemoryKeyValueStore
Source§fn default() -> MemoryKeyValueStore
fn default() -> MemoryKeyValueStore
Returns the “default value” for a type. Read more
Source§impl KeyValueStore for MemoryKeyValueStore
impl KeyValueStore for MemoryKeyValueStore
Source§fn visit_value(
&self,
key: &[u8],
control: &StorageReadControl,
visit: &mut ValueReadVisitor<'_>,
) -> StorageBackendResult<()>
fn visit_value( &self, key: &[u8], control: &StorageReadControl, visit: &mut ValueReadVisitor<'_>, ) -> StorageBackendResult<()>
Visit one borrowed value under the retained read. Providers reserve any temporary encoded payload before fetching it; callbacks must not reenter the store.
Source§fn visit_prefix_after(
&self,
prefix: &[u8],
after: Option<&[u8]>,
limit: usize,
control: &StorageReadControl,
visit: &mut KeyValueReadVisitor<'_>,
) -> StorageBackendResult<()>
fn visit_prefix_after( &self, prefix: &[u8], after: Option<&[u8]>, limit: usize, control: &StorageReadControl, visit: &mut KeyValueReadVisitor<'_>, ) -> StorageBackendResult<()>
Visit at most
limit entries in key order, strictly after after when supplied. Encoded values remain borrowed from their provider owner and callbacks must not reenter the store.fn get(&self, key: &[u8]) -> StorageBackendResult<Option<Vec<u8>>>
fn contains_key(&self, key: &[u8]) -> StorageBackendResult<bool>
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>)>>
Source§fn scan_prefix_after(
&self,
prefix: &[u8],
after: Option<&[u8]>,
limit: usize,
) -> StorageBackendResult<Vec<(Vec<u8>, Vec<u8>)>>
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>>>
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.fn first_prefix_after( &self, prefix: &[u8], after: Option<&[u8]>, ) -> StorageBackendResult<Option<(Vec<u8>, Vec<u8>)>>
fn delete_prefix(&self, prefix: &[u8]) -> StorageBackendResult<usize>
fn batch(&self) -> Box<dyn KeyValueBatch + '_>
fn begin_transaction(&self) -> StorageBackendResult<()>
fn begin_read_transaction(&self) -> StorageBackendResult<()>
fn in_transaction(&self) -> bool
fn transaction_has_written(&self) -> StorageBackendResult<bool>
fn change_version(&self) -> StorageBackendResult<Option<u64>>
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<()>
fn storage_identity( &self, ) -> StorageBackendResult<Option<PersistentStorageIdentity>>
Source§fn open_session(&self) -> StorageBackendResult<Arc<dyn KeyValueStore>>
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_prefix_budgeted(
&self,
prefix: &[u8],
control: &StorageReadControl,
) -> StorageBackendResult<bool>
fn contains_prefix_budgeted( &self, prefix: &[u8], control: &StorageReadControl, ) -> StorageBackendResult<bool>
Test prefix existence under the read allowance. Providers that materialize values should implement a key-only probe.
fn begin_upgradeable_transaction(&self) -> StorageBackendResult<()>
fn change_version_monitor_is_nonblocking(&self) -> StorageBackendResult<bool>
fn pin_transaction_snapshot(&self) -> StorageBackendResult<()>
Auto Trait Implementations§
impl !Freeze for MemoryKeyValueStore
impl !RefUnwindSafe for MemoryKeyValueStore
impl Send for MemoryKeyValueStore
impl Sync for MemoryKeyValueStore
impl Unpin for MemoryKeyValueStore
impl UnsafeUnpin for MemoryKeyValueStore
impl UnwindSafe for MemoryKeyValueStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more