pub struct MemoryMap<K, V>where
K: Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync,
V: Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync,{ /* private fields */ }Trait Implementations§
Source§impl<K, V> FromIterator<(K, V)> for MemoryMap<K, V>
impl<K, V> FromIterator<(K, V)> for MemoryMap<K, V>
Source§impl<'a, K, V> Map<'a, K, V> for MemoryMap<K, V>
impl<'a, K, V> Map<'a, K, V> for MemoryMap<K, V>
Source§fn insert(&self, key: K, value: V) -> Result<(), Error>
fn insert(&self, key: K, value: V) -> Result<(), Error>
Inserts the given key-value pair into the map.
Source§fn remove(&self, key: &K) -> Result<(), Error>
fn remove(&self, key: &K) -> Result<(), Error>
Removes the key-value pair for the given key from the map.
Source§fn start_atomic(&self)
fn start_atomic(&self)
Begins an atomic operation. Any further calls to insert and remove will be queued
without an actual write taking place until finish_atomic is called.
Source§fn is_atomic_in_progress(&self) -> bool
fn is_atomic_in_progress(&self) -> bool
Checks whether an atomic operation is currently in progress. This can be done to ensure that lower-level operations don’t start and finish their individual atomic write batch if they are already part of a larger one.
Source§fn atomic_checkpoint(&self)
fn atomic_checkpoint(&self)
Saves the current list of pending operations, so that if atomic_rewind is called,
we roll back all future operations, and return to the start of this checkpoint.
Source§fn clear_latest_checkpoint(&self)
fn clear_latest_checkpoint(&self)
Removes the latest atomic checkpoint.
Source§fn atomic_rewind(&self)
fn atomic_rewind(&self)
Removes all pending operations to the last atomic_checkpoint
(or to start_atomic if no checkpoints have been created).
Source§fn abort_atomic(&self)
fn abort_atomic(&self)
Aborts the current atomic operation.
Source§fn finish_atomic(&self) -> Result<(), Error>
fn finish_atomic(&self) -> Result<(), Error>
Finishes an atomic operation, performing all the queued writes.
Source§impl<'a, K, V> MapRead<'a, K, V> for MemoryMap<K, V>
impl<'a, K, V> MapRead<'a, K, V> for MemoryMap<K, V>
Source§fn len_confirmed(&self) -> usize
fn len_confirmed(&self) -> usize
Returns the number of confirmed entries in the map.
Source§fn contains_key_confirmed<Q>(&self, key: &Q) -> Result<bool, Error>
fn contains_key_confirmed<Q>(&self, key: &Q) -> Result<bool, Error>
Returns true if the given key exists in the map.
Source§fn contains_key_speculative<Q>(&self, key: &Q) -> Result<bool, Error>
fn contains_key_speculative<Q>(&self, key: &Q) -> Result<bool, Error>
Returns true if the given key exists in the map.
This method first checks the atomic batch, and if it does not exist, then checks the map.
Source§fn get_confirmed<Q>(&'a self, key: &Q) -> Result<Option<Cow<'a, V>>, Error>
fn get_confirmed<Q>(&'a self, key: &Q) -> Result<Option<Cow<'a, V>>, Error>
Returns the value for the given key from the map, if it exists.
Source§fn get_pending<Q>(&self, key: &Q) -> Option<Option<V>>
fn get_pending<Q>(&self, key: &Q) -> Option<Option<V>>
Returns the current value for the given key if it is scheduled to be inserted as part of an atomic batch.
If the key does not exist, returns None.
If the key is removed in the batch, returns Some(None).
If the key is inserted in the batch, returns Some(Some(value)).
Source§fn iter_pending(
&'a self,
) -> <MemoryMap<K, V> as MapRead<'a, K, V>>::PendingIterator
fn iter_pending( &'a self, ) -> <MemoryMap<K, V> as MapRead<'a, K, V>>::PendingIterator
Returns an iterator visiting each key-value pair in the atomic batch.
Source§fn iter_confirmed(&'a self) -> <MemoryMap<K, V> as MapRead<'a, K, V>>::Iterator
fn iter_confirmed(&'a self) -> <MemoryMap<K, V> as MapRead<'a, K, V>>::Iterator
Returns an iterator visiting each key-value pair in the map.
Source§fn keys_confirmed(&'a self) -> <MemoryMap<K, V> as MapRead<'a, K, V>>::Keys
fn keys_confirmed(&'a self) -> <MemoryMap<K, V> as MapRead<'a, K, V>>::Keys
Returns an iterator over each key in the map.
Source§fn values_confirmed(&'a self) -> <MemoryMap<K, V> as MapRead<'a, K, V>>::Values
fn values_confirmed(&'a self) -> <MemoryMap<K, V> as MapRead<'a, K, V>>::Values
Returns an iterator over each value in the map.