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.

Required Associated Types

The type that iterates over all (key, value).

The type that itereates over all keys.

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.

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.

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