pub trait NestedMapRead<'a, M, K, V>where
M: 'a + Copy + Clone + PartialEq + Eq + Hash + Serialize + Deserialize<'a> + Sync,
K: 'a + Clone + PartialEq + Eq + Serialize + Deserialize<'a> + Sync,
V: 'a + Clone + PartialEq + Eq + Serialize + Deserialize<'a> + Sync,{
type PendingIterator: Iterator<Item = (Cow<'a, M>, Option<Cow<'a, K>>, Option<Cow<'a, V>>)>;
type Iterator: Iterator<Item = (Cow<'a, M>, Cow<'a, K>, Cow<'a, V>)>;
type Keys: Iterator<Item = (Cow<'a, M>, Cow<'a, K>)>;
type Values: Iterator<Item = Cow<'a, V>>;
// Required methods
fn contains_key_confirmed(&self, map: &M, key: &K) -> Result<bool, Error>;
fn contains_key_speculative(&self, map: &M, key: &K) -> Result<bool, Error>;
fn get_map_confirmed(&'a self, map: &M) -> Result<Vec<(K, V)>, Error>;
fn get_map_speculative(&'a self, map: &M) -> Result<Vec<(K, V)>, Error>;
fn get_value_confirmed(
&'a self,
map: &M,
key: &K,
) -> Result<Option<Cow<'a, V>>, Error>;
fn get_value_pending(&self, map: &M, key: &K) -> Option<Option<V>>;
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_value_speculative(
&'a self,
map: &M,
key: &K,
) -> Result<Option<Cow<'a, V>>, Error> { ... }
}Expand description
A trait representing ‘nested map’-like storage operations with read-only capabilities.
Required Associated Types§
type PendingIterator: Iterator<Item = (Cow<'a, M>, Option<Cow<'a, K>>, Option<Cow<'a, V>>)>
type Iterator: Iterator<Item = (Cow<'a, M>, Cow<'a, K>, Cow<'a, V>)>
type Keys: Iterator<Item = (Cow<'a, M>, Cow<'a, K>)>
type Values: Iterator<Item = Cow<'a, V>>
Required Methods§
Sourcefn contains_key_confirmed(&self, map: &M, key: &K) -> Result<bool, Error>
fn contains_key_confirmed(&self, map: &M, key: &K) -> Result<bool, Error>
Returns true if the given key exists in the map.
Sourcefn contains_key_speculative(&self, map: &M, key: &K) -> Result<bool, Error>
fn contains_key_speculative(&self, map: &M, key: &K) -> 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 confirmed.
Sourcefn get_map_confirmed(&'a self, map: &M) -> Result<Vec<(K, V)>, Error>
fn get_map_confirmed(&'a self, map: &M) -> Result<Vec<(K, V)>, Error>
Returns the confirmed key-value pairs for the given map, if it exists.
Sourcefn get_map_speculative(&'a self, map: &M) -> Result<Vec<(K, V)>, Error>
fn get_map_speculative(&'a self, map: &M) -> Result<Vec<(K, V)>, Error>
Returns the speculative key-value pairs for the given map, if it exists.
Sourcefn get_value_confirmed(
&'a self,
map: &M,
key: &K,
) -> Result<Option<Cow<'a, V>>, Error>
fn get_value_confirmed( &'a self, map: &M, key: &K, ) -> Result<Option<Cow<'a, V>>, Error>
Returns the value for the given key from the map, if it exists.
Sourcefn get_value_pending(&self, map: &M, key: &K) -> Option<Option<V>>
fn get_value_pending(&self, map: &M, key: &K) -> 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 map-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 confirmed map-key-value pair.
Sourcefn keys_confirmed(&'a self) -> Self::Keys
fn keys_confirmed(&'a self) -> Self::Keys
Returns an iterator over each confirmed key.
Sourcefn values_confirmed(&'a self) -> Self::Values
fn values_confirmed(&'a self) -> Self::Values
Returns an iterator over each confirmed value.