pub trait MapRead<'a, K, V>where
K: 'a + Copy + Clone + PartialEq + Eq + Hash + Serialize + Deserialize<'a> + Sync,
V: 'a + Clone + PartialEq + Eq + Serialize + Deserialize<'a> + Sync,{
type PendingIterator: Iterator<Item = (Cow<'a, K>, Option<Cow<'a, V>>)>;
type Iterator: Iterator<Item = (Cow<'a, K>, Cow<'a, V>)>;
type Keys: Iterator<Item = Cow<'a, K>>;
type Values: Iterator<Item = Cow<'a, V>>;
// Required methods
fn contains_key_confirmed<Q>(&self, key: &Q) -> Result<bool, Error>
where K: Borrow<Q>,
Q: PartialEq + Eq + Hash + Serialize + ?Sized;
fn contains_key_speculative<Q>(&self, key: &Q) -> Result<bool, Error>
where K: Borrow<Q>,
Q: PartialEq + Eq + Hash + Serialize + ?Sized;
fn get_confirmed<Q>(&'a self, key: &Q) -> Result<Option<Cow<'a, V>>, Error>
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;
fn iter_pending(&'a self) -> Self::PendingIterator;
fn iter_confirmed(&'a self) -> Self::Iterator;
fn keys_confirmed(&'a self) -> Self::Keys;
fn values_confirmed(&'a self) -> Self::Values;
// Provided method
fn get_speculative<Q>(
&'a self,
key: &Q,
) -> Result<Option<Cow<'a, V>>, Error>
where K: Borrow<Q>,
Q: PartialEq + Eq + Hash + Serialize + ?Sized { ... }
}Expand description
A trait representing map-like storage operations with read-only capabilities.
Required Associated Types§
type PendingIterator: Iterator<Item = (Cow<'a, K>, Option<Cow<'a, V>>)>
type Iterator: Iterator<Item = (Cow<'a, K>, Cow<'a, V>)>
type Keys: Iterator<Item = Cow<'a, K>>
type Values: Iterator<Item = Cow<'a, V>>
Required Methods§
Sourcefn 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.
Sourcefn 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.
Sourcefn 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.
Sourcefn 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)).
Sourcefn 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.
Sourcefn iter_confirmed(&'a self) -> Self::Iterator
fn iter_confirmed(&'a self) -> Self::Iterator
Returns an iterator visiting each key-value pair in the map.
Sourcefn keys_confirmed(&'a self) -> Self::Keys
fn keys_confirmed(&'a self) -> Self::Keys
Returns an iterator over each key in the map.
Sourcefn values_confirmed(&'a self) -> Self::Values
fn values_confirmed(&'a self) -> Self::Values
Returns an iterator over each value in the map.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.