pub trait KeyGenerator {
    type Key: EncodeLike<Self::Key> + StaticTypeInfo;
    type KArg: Encode + EncodeLike<Self::KArg>;
    type HashFn: FnOnce(&[u8]) -> Vec<u8>;
    type HArg;

    const HASHER_METADATA: &'static [StorageHasherIR];

    // Required methods
    fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>(
        key: KArg
    ) -> Vec<u8> ;
    fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>(
        key: &KArg,
        hash_fns: Self::HArg
    ) -> Vec<u8> ;
}
Expand description

A trait that contains the current key as an associated type.

Required Associated Types§

source

type Key: EncodeLike<Self::Key> + StaticTypeInfo

source

type KArg: Encode + EncodeLike<Self::KArg>

source

type HashFn: FnOnce(&[u8]) -> Vec<u8>

source

type HArg

Required Associated Constants§

Required Methods§

source

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

Given a key tuple, calculate the final key by encoding each element individually and hashing them using the corresponding hasher in the KeyGenerator.

source

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

Given a key tuple, migrate the keys from using the old hashers as given by hash_fns to using the newer hashers as specified by this KeyGenerator.

Implementations on Foreign Types§

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner, TupleElement9: KeyGeneratorInner, TupleElement10: KeyGeneratorInner, TupleElement11: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn, <TupleElement9 as KeyGenerator>::HashFn, <TupleElement10 as KeyGenerator>::HashFn, <TupleElement11 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner, TupleElement9: KeyGeneratorInner, TupleElement10: KeyGeneratorInner, TupleElement11: KeyGeneratorInner, TupleElement12: KeyGeneratorInner, TupleElement13: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn, <TupleElement9 as KeyGenerator>::HashFn, <TupleElement10 as KeyGenerator>::HashFn, <TupleElement11 as KeyGenerator>::HashFn, <TupleElement12 as KeyGenerator>::HashFn, <TupleElement13 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner, TupleElement9: KeyGeneratorInner, TupleElement10: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn, <TupleElement9 as KeyGenerator>::HashFn, <TupleElement10 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner, TupleElement9: KeyGeneratorInner, TupleElement10: KeyGeneratorInner, TupleElement11: KeyGeneratorInner, TupleElement12: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn, <TupleElement9 as KeyGenerator>::HashFn, <TupleElement10 as KeyGenerator>::HashFn, <TupleElement11 as KeyGenerator>::HashFn, <TupleElement12 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner> KeyGenerator for (TupleElement0,)

§

type Key = (<TupleElement0 as KeyGenerator>::Key,)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key,)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn,)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner, TupleElement9: KeyGeneratorInner, TupleElement10: KeyGeneratorInner, TupleElement11: KeyGeneratorInner, TupleElement12: KeyGeneratorInner, TupleElement13: KeyGeneratorInner, TupleElement14: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key, <TupleElement14 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key, <TupleElement14 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn, <TupleElement9 as KeyGenerator>::HashFn, <TupleElement10 as KeyGenerator>::HashFn, <TupleElement11 as KeyGenerator>::HashFn, <TupleElement12 as KeyGenerator>::HashFn, <TupleElement13 as KeyGenerator>::HashFn, <TupleElement14 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner, TupleElement9: KeyGeneratorInner, TupleElement10: KeyGeneratorInner, TupleElement11: KeyGeneratorInner, TupleElement12: KeyGeneratorInner, TupleElement13: KeyGeneratorInner, TupleElement14: KeyGeneratorInner, TupleElement15: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key, <TupleElement14 as KeyGenerator>::Key, <TupleElement15 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key, <TupleElement14 as KeyGenerator>::Key, <TupleElement15 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn, <TupleElement9 as KeyGenerator>::HashFn, <TupleElement10 as KeyGenerator>::HashFn, <TupleElement11 as KeyGenerator>::HashFn, <TupleElement12 as KeyGenerator>::HashFn, <TupleElement13 as KeyGenerator>::HashFn, <TupleElement14 as KeyGenerator>::HashFn, <TupleElement15 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner, TupleElement9: KeyGeneratorInner, TupleElement10: KeyGeneratorInner, TupleElement11: KeyGeneratorInner, TupleElement12: KeyGeneratorInner, TupleElement13: KeyGeneratorInner, TupleElement14: KeyGeneratorInner, TupleElement15: KeyGeneratorInner, TupleElement16: KeyGeneratorInner, TupleElement17: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key, <TupleElement14 as KeyGenerator>::Key, <TupleElement15 as KeyGenerator>::Key, <TupleElement16 as KeyGenerator>::Key, <TupleElement17 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key, <TupleElement14 as KeyGenerator>::Key, <TupleElement15 as KeyGenerator>::Key, <TupleElement16 as KeyGenerator>::Key, <TupleElement17 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn, <TupleElement9 as KeyGenerator>::HashFn, <TupleElement10 as KeyGenerator>::HashFn, <TupleElement11 as KeyGenerator>::HashFn, <TupleElement12 as KeyGenerator>::HashFn, <TupleElement13 as KeyGenerator>::HashFn, <TupleElement14 as KeyGenerator>::HashFn, <TupleElement15 as KeyGenerator>::HashFn, <TupleElement16 as KeyGenerator>::HashFn, <TupleElement17 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner, TupleElement9: KeyGeneratorInner, TupleElement10: KeyGeneratorInner, TupleElement11: KeyGeneratorInner, TupleElement12: KeyGeneratorInner, TupleElement13: KeyGeneratorInner, TupleElement14: KeyGeneratorInner, TupleElement15: KeyGeneratorInner, TupleElement16: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key, <TupleElement14 as KeyGenerator>::Key, <TupleElement15 as KeyGenerator>::Key, <TupleElement16 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key, <TupleElement10 as KeyGenerator>::Key, <TupleElement11 as KeyGenerator>::Key, <TupleElement12 as KeyGenerator>::Key, <TupleElement13 as KeyGenerator>::Key, <TupleElement14 as KeyGenerator>::Key, <TupleElement15 as KeyGenerator>::Key, <TupleElement16 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn, <TupleElement9 as KeyGenerator>::HashFn, <TupleElement10 as KeyGenerator>::HashFn, <TupleElement11 as KeyGenerator>::HashFn, <TupleElement12 as KeyGenerator>::HashFn, <TupleElement13 as KeyGenerator>::HashFn, <TupleElement14 as KeyGenerator>::HashFn, <TupleElement15 as KeyGenerator>::HashFn, <TupleElement16 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

source§

impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner, TupleElement7: KeyGeneratorInner, TupleElement8: KeyGeneratorInner, TupleElement9: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)

§

type Key = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key)

§

type KArg = (<TupleElement0 as KeyGenerator>::Key, <TupleElement1 as KeyGenerator>::Key, <TupleElement2 as KeyGenerator>::Key, <TupleElement3 as KeyGenerator>::Key, <TupleElement4 as KeyGenerator>::Key, <TupleElement5 as KeyGenerator>::Key, <TupleElement6 as KeyGenerator>::Key, <TupleElement7 as KeyGenerator>::Key, <TupleElement8 as KeyGenerator>::Key, <TupleElement9 as KeyGenerator>::Key)

§

type HArg = (<TupleElement0 as KeyGenerator>::HashFn, <TupleElement1 as KeyGenerator>::HashFn, <TupleElement2 as KeyGenerator>::HashFn, <TupleElement3 as KeyGenerator>::HashFn, <TupleElement4 as KeyGenerator>::HashFn, <TupleElement5 as KeyGenerator>::HashFn, <TupleElement6 as KeyGenerator>::HashFn, <TupleElement7 as KeyGenerator>::HashFn, <TupleElement8 as KeyGenerator>::HashFn, <TupleElement9 as KeyGenerator>::HashFn)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _

source§

fn final_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: KArg ) -> Vec<u8>

source§

fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>( key: &KArg, hash_fns: Self::HArg ) -> Vec<u8>

Implementors§

source§

impl<H: StorageHasher, K: FullCodec + StaticTypeInfo> KeyGenerator for Key<H, K>

§

type Key = K

§

type KArg = (K,)

§

type HashFn = Box<dyn FnOnce(&[u8]) -> Vec<u8, Global> + 'static, Global>

§

type HArg = (<Key<H, K> as KeyGenerator>::HashFn,)

source§

const HASHER_METADATA: &'static [StorageHasherIR] = _