pub struct MemoryMap<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: Clone + Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: Clone + Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> Clone for MemoryMap<K, V>
impl<K: Clone + Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: Clone + Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> Clone for MemoryMap<K, V>
source§impl<K: Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> Default for MemoryMap<K, V>
impl<K: Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> Default for MemoryMap<K, V>
source§impl<K: Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> Deref for MemoryMap<K, V>
impl<K: Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> Deref for MemoryMap<K, V>
source§impl<K: Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> FromIterator<(K, V)> for MemoryMap<K, V>
impl<K: Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> FromIterator<(K, V)> for MemoryMap<K, V>
source§fn from_iter<I: IntoIterator<Item = (K, V)>>(iter: I) -> Self
fn from_iter<I: IntoIterator<Item = (K, V)>>(iter: I) -> Self
Initializes a new MemoryMap
from the given iterator.
source§impl<'a, K: 'a + Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: 'a + Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> Map<'a, K, V> for MemoryMap<K, V>
impl<'a, K: 'a + Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: 'a + Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> Map<'a, K, V> for MemoryMap<K, V>
source§fn insert(&self, key: K, value: V) -> Result<()>
fn insert(&self, key: K, value: V) -> Result<()>
Inserts the given key-value pair into the map.
source§fn remove(&self, key: &K) -> Result<()>
fn remove(&self, key: &K) -> Result<()>
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<()>
fn finish_atomic(&self) -> Result<()>
Finishes an atomic operation, performing all the queued writes.
source§impl<'a, K: 'a + Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: 'a + Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> MapRead<'a, K, V> for MemoryMap<K, V>
impl<'a, K: 'a + Copy + Clone + PartialEq + Eq + Hash + Serialize + for<'de> Deserialize<'de> + Send + Sync, V: 'a + Clone + PartialEq + Eq + Serialize + for<'de> Deserialize<'de> + Send + Sync> MapRead<'a, K, V> for MemoryMap<K, V>
source§fn contains_key_confirmed<Q>(&self, key: &Q) -> Result<bool>where
K: Borrow<Q>,
Q: PartialEq + Eq + Hash + Serialize + ?Sized,
fn contains_key_confirmed<Q>(&self, key: &Q) -> Result<bool>where K: Borrow<Q>, Q: PartialEq + Eq + Hash + Serialize + ?Sized,
Returns true
if the given key exists in the map.
source§fn contains_key_speculative<Q>(&self, key: &Q) -> Result<bool>where
K: Borrow<Q>,
Q: PartialEq + Eq + Hash + Serialize + ?Sized,
fn contains_key_speculative<Q>(&self, key: &Q) -> Result<bool>where K: Borrow<Q>, Q: PartialEq + Eq + Hash + Serialize + ?Sized,
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>>>where
K: Borrow<Q>,
Q: PartialEq + Eq + Hash + Serialize + ?Sized,
fn get_confirmed<Q>(&'a self, key: &Q) -> Result<Option<Cow<'a, V>>>where K: Borrow<Q>, Q: PartialEq + Eq + Hash + Serialize + ?Sized,
Returns the value for the given key from the map, if it exists.
source§fn get_pending<Q>(&self, key: &Q) -> Option<Option<V>>where
K: Borrow<Q>,
Q: PartialEq + Eq + Hash + Serialize + ?Sized,
fn get_pending<Q>(&self, key: &Q) -> Option<Option<V>>where K: Borrow<Q>, Q: PartialEq + Eq + Hash + Serialize + ?Sized,
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) -> Self::PendingIterator
fn iter_pending(&'a self) -> Self::PendingIterator
Returns an iterator visiting each key-value pair in the atomic batch.
source§fn iter_confirmed(&'a self) -> Self::Iterator
fn iter_confirmed(&'a self) -> Self::Iterator
Returns an iterator visiting each key-value pair in the map.
source§fn keys_confirmed(&'a self) -> Self::Keys
fn keys_confirmed(&'a self) -> Self::Keys
Returns an iterator over each key in the map.
source§fn values_confirmed(&'a self) -> Self::Values
fn values_confirmed(&'a self) -> Self::Values
Returns an iterator over each value in the map.