Trait fabric_support::storage::IterableStorageMap[][src]

pub trait IterableStorageMap<K: FullEncode, V: FullCodec>: StorageMap<K, V> {
    type Iterator: Iterator<Item = (K, V)>;
    fn iter() -> Self::Iterator;
fn drain() -> Self::Iterator;
fn translate<O: Decode, F: Fn(K, O) -> Option<V>>(f: F); }

A strongly-typed map in storage whose keys and values can be iterated over.

Associated Types

type Iterator: Iterator<Item = (K, V)>[src]

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

Loading content...

Required methods

fn iter() -> Self::Iterator[src]

Enumerate all elements in the map in no particular order. If you alter the map while doing this, you’ll get undefined results.

fn drain() -> Self::Iterator[src]

Remove all elements from the map and iterate through them in no particular order. If you add elements to the map while doing this, you’ll get undefined results.

fn translate<O: Decode, F: Fn(K, O) -> Option<V>>(f: F)[src]

Translate the values of all elements by a function f, in the map in no particular order. 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.

Loading content...

Implementors

impl<K: FullCodec, V: FullCodec, G: StorageMap<K, V>> IterableStorageMap<K, V> for G where
    G::Hasher: ReversibleStorageHasher
[src]

type Iterator = PrefixIterator<(K, V)>

fn iter() -> Self::Iterator[src]

Enumerate all elements in the map.

fn drain() -> Self::Iterator[src]

Enumerate all elements in the map.

Loading content...