pub struct MemStore { /* private fields */ }Expand description
In-memory store for testing and simple use cases
Implementations§
Trait Implementations§
Source§impl ManifestStore for MemStore
impl ManifestStore for MemStore
Source§type Error = MemStoreError
type Error = MemStoreError
Error type for manifest operations.
Source§fn get_root(&self, name: &[u8]) -> Result<Option<RootManifest>, Self::Error>
fn get_root(&self, name: &[u8]) -> Result<Option<RootManifest>, Self::Error>
Load a named root manifest.
Source§fn put_root(
&self,
name: &[u8],
manifest: &RootManifest,
) -> Result<(), Self::Error>
fn put_root( &self, name: &[u8], manifest: &RootManifest, ) -> Result<(), Self::Error>
Unconditionally insert or replace a named root manifest.
Source§fn delete_root(&self, name: &[u8]) -> Result<(), Self::Error>
fn delete_root(&self, name: &[u8]) -> Result<(), Self::Error>
Delete a named root manifest. Deleting a missing name is not an error.
Source§fn compare_and_swap_root(
&self,
name: &[u8],
expected: Option<&RootManifest>,
new: Option<&RootManifest>,
) -> Result<ManifestUpdate, Self::Error>
fn compare_and_swap_root( &self, name: &[u8], expected: Option<&RootManifest>, new: Option<&RootManifest>, ) -> Result<ManifestUpdate, Self::Error>
Atomically update a named root if the current manifest matches
expected. Read moreSource§impl ManifestStoreScan for MemStore
impl ManifestStoreScan for MemStore
Source§fn list_roots(&self) -> Result<Vec<NamedRootManifest>, Self::Error>
fn list_roots(&self) -> Result<Vec<NamedRootManifest>, Self::Error>
List all durable named root manifests.
Source§impl NodeStoreScan for MemStore
impl NodeStoreScan for MemStore
Source§impl Store for MemStore
impl Store for MemStore
Source§fn batch_get(
&self,
keys: &[&[u8]],
) -> Result<HashMap<Vec<u8>, Vec<u8>>, Self::Error>
fn batch_get( &self, keys: &[&[u8]], ) -> Result<HashMap<Vec<u8>, Vec<u8>>, Self::Error>
Optimized batch_get for MemStore - acquires lock once for all reads
Source§fn batch_get_ordered(
&self,
keys: &[&[u8]],
) -> Result<Vec<Option<Vec<u8>>>, Self::Error>
fn batch_get_ordered( &self, keys: &[&[u8]], ) -> Result<Vec<Option<Vec<u8>>>, Self::Error>
Optimized batch_get_ordered for MemStore - acquires lock once for all reads
Source§fn batch_put(&self, entries: &[(&[u8], &[u8])]) -> Result<(), Self::Error>
fn batch_put(&self, entries: &[(&[u8], &[u8])]) -> Result<(), Self::Error>
Optimized batch_put for MemStore - acquires lock once for all writes
Source§type Error = MemStoreError
type Error = MemStoreError
Error type for storage operations
Source§fn put(&self, key: &[u8], value: &[u8]) -> Result<(), Self::Error>
fn put(&self, key: &[u8], value: &[u8]) -> Result<(), Self::Error>
Store key-value pair Read more
Source§fn batch(&self, ops: &[BatchOp<'_>]) -> Result<(), Self::Error>
fn batch(&self, ops: &[BatchOp<'_>]) -> Result<(), Self::Error>
Batch write operations (atomic if supported by backend) Read more
Source§fn batch_get_ordered_unique(
&self,
keys: &[&[u8]],
) -> Result<Vec<Option<Vec<u8>>>, Self::Error>
fn batch_get_ordered_unique( &self, keys: &[&[u8]], ) -> Result<Vec<Option<Vec<u8>>>, Self::Error>
Retrieve unique keys in input order. Read more
Source§fn prefers_batch_reads(&self) -> bool
fn prefers_batch_reads(&self) -> bool
Whether this store has an efficient batched-read implementation. Read more
Source§fn supports_hints(&self) -> bool
fn supports_hints(&self) -> bool
Whether this store persists performance hints.
Source§fn get_hint(
&self,
namespace: &[u8],
key: &[u8],
) -> Result<Option<Vec<u8>>, Self::Error>
fn get_hint( &self, namespace: &[u8], key: &[u8], ) -> Result<Option<Vec<u8>>, Self::Error>
Retrieve an optional performance hint for a logical namespace and key. Read more
Source§impl TransactionalStore for MemStore
impl TransactionalStore for MemStore
Source§fn supports_transactions(&self) -> bool
fn supports_transactions(&self) -> bool
Whether this backend can atomically commit staged nodes and roots.
Source§fn commit_transaction(
&self,
node_writes: &[TransactionNodeWrite],
root_conditions: &[RootCondition],
root_writes: &[RootWrite],
) -> Result<TransactionUpdate, Error>
fn commit_transaction( &self, node_writes: &[TransactionNodeWrite], root_conditions: &[RootCondition], root_writes: &[RootWrite], ) -> Result<TransactionUpdate, Error>
Atomically validate root conditions, write nodes, and apply root writes.
Auto Trait Implementations§
impl !Freeze for MemStore
impl RefUnwindSafe for MemStore
impl Send for MemStore
impl Sync for MemStore
impl Unpin for MemStore
impl UnsafeUnpin for MemStore
impl UnwindSafe for MemStore
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more