pub trait IterableByKeyMap<Item> {
    type Key;
    type DrainIter: Iterator<Item = Item>;
    type Iter: Iterator<Item = Item>;

    // Required methods
    fn drain_key(key: Self::Key) -> Self::DrainIter;
    fn iter_key(key: Self::Key) -> Self::Iter;
}
Expand description

Represents iterable logic for double key maps (Key1 -> Key2 -> Value).

Returns the iterators over specified (associated) type of the first key’s items.

Required Associated Types§

source

type Key

Map’s first key type.

source

type DrainIter: Iterator<Item = Item>

Removal iterator type.

source

type Iter: Iterator<Item = Item>

Getting iterator type.

Required Methods§

source

fn drain_key(key: Self::Key) -> Self::DrainIter

Creates the removal iterator over double map Items.

source

fn iter_key(key: Self::Key) -> Self::Iter

Creates the getting iterator over double map Items.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T, Value, BlockNumber, Error, OutputError, Callbacks, KeyGen> IterableByKeyMap<<T as DoubleMapStorage>::Value> for MailboxImpl<T, Value, BlockNumber, Error, OutputError, Callbacks, KeyGen>
where T: DoubleMapStorage<Value = (Value, Interval<BlockNumber>)> + IterableByKeyMap<T::Value, Key = T::Key1>, Error: MailboxError, OutputError: From<Error>, Callbacks: MailboxCallbacks<OutputError, Value = Value, BlockNumber = BlockNumber>, KeyGen: KeyFor<Key = (T::Key1, T::Key2), Value = Value>,

source§

impl<T, Value, BlockNumber, Error, OutputError, Callbacks, KeyGen> IterableByKeyMap<<T as DoubleMapStorage>::Value> for WaitlistImpl<T, Value, BlockNumber, Error, OutputError, Callbacks, KeyGen>
where T: DoubleMapStorage<Value = (Value, Interval<BlockNumber>)> + IterableByKeyMap<T::Value, Key = T::Key1>, Error: WaitlistError, OutputError: From<Error>, Callbacks: WaitlistCallbacks<Value = Value, BlockNumber = BlockNumber>, KeyGen: KeyFor<Key = (T::Key1, T::Key2), Value = Value>,