pub trait MapRead<'a, 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 len_confirmed(&self) -> usize;
fn contains_key_confirmed<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;
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_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 methods
fn is_empty_confirmed(&self) -> bool { ... }
fn get_speculative<Q>(&'a self, key: &Q) -> Result<Option<Cow<'a, V>>>
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 len_confirmed(&self) -> usize
fn len_confirmed(&self) -> usize
Returns the number of confirmed entries in the map.
Sourcefn contains_key_confirmed<Q>(&self, key: &Q) -> Result<bool>
fn contains_key_confirmed<Q>(&self, key: &Q) -> Result<bool>
Returns true
if the given key exists in the map.
Sourcefn contains_key_speculative<Q>(&self, key: &Q) -> Result<bool>
fn contains_key_speculative<Q>(&self, key: &Q) -> Result<bool>
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>>>
fn get_confirmed<Q>(&'a self, key: &Q) -> Result<Option<Cow<'a, V>>>
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§
Sourcefn is_empty_confirmed(&self) -> bool
fn is_empty_confirmed(&self) -> bool
Checks whether there are any confirmed entries in the map.
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.