Trait frame_support::storage::IterableStorageMap [−][src]
pub trait IterableStorageMap<K: FullEncode, V: FullCodec>: StorageMap<K, V> { type Iterator: Iterator<Item = (K, V)>; type KeyIterator: Iterator<Item = K>; fn iter() -> Self::Iterator; fn iter_from(starting_raw_key: Vec<u8>) -> Self::Iterator; fn iter_keys() -> Self::KeyIterator; fn iter_keys_from(starting_raw_key: Vec<u8>) -> Self::KeyIterator; fn drain() -> Self::Iterator; fn translate<O: Decode, F: FnMut(K, O) -> Option<V>>(f: F); }
Expand description
A strongly-typed map in storage whose keys and values can be iterated over.
Associated Types
type KeyIterator: Iterator<Item = K>
type KeyIterator: Iterator<Item = K>
The type that itereates over all key
s.
Required methods
Enumerate all elements in the map in lexicographical order of the encoded key. If you alter the map while doing this, you’ll get undefined results.
Enumerate all elements in the map after a specified starting_raw_key
in lexicographical
order of the encoded key. If you alter the map while doing this, you’ll get undefined
results.
fn iter_keys() -> Self::KeyIterator
fn iter_keys() -> Self::KeyIterator
Enumerate all keys in the map in lexicographical order of the encoded key, skipping over the elements. If you alter the map while doing this, you’ll get undefined results.
fn iter_keys_from(starting_raw_key: Vec<u8>) -> Self::KeyIterator
fn iter_keys_from(starting_raw_key: Vec<u8>) -> Self::KeyIterator
Enumerate all keys in the map after a specified starting_raw_key
in lexicographical order
of the encoded key. If you alter the map while doing this, you’ll get undefined results.
Remove all elements from the map and iterate through them in lexicographical order of the encoded key. If you add elements to the map while doing this, you’ll get undefined results.
Translate the values of all elements by a function f
, in the map in lexicographical order
of the encoded key.
By returning None
from f
for an element, you’ll remove it from the map.
NOTE: If a value fail to decode because storage is corrupted then it is skipped.
Implementors
impl<K: FullCodec, V: FullCodec, G: StorageMap<K, V>> IterableStorageMap<K, V> for G where
G::Hasher: ReversibleStorageHasher,