Trait snarkvm_ledger_store::helpers::MapRead
source · 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 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 method
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 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.
sourcefn 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.
sourcefn 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.
sourcefn 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))
.
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.