Trait frame_support::storage::types::KeyGenerator [−][src]
pub trait KeyGenerator {
type Key: EncodeLike<Self::Key>;
type KArg: Encode;
type HashFn: FnOnce(&[u8]) -> Vec<u8>;
type HArg;
const HASHER_METADATA: &'static [StorageHasher];
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.
Associated Types
type Key: EncodeLike<Self::Key>Associated Constants
Required methods
Given a key tuple, calculate the final key by encoding each element individuallly and
hashing them using the corresponding hasher in the KeyGenerator.
fn migrate_key<KArg: EncodeLikeTuple<Self::KArg> + TupleToEncodedIter>(
key: &KArg,
hash_fns: Self::HArg
) -> Vec<u8>ⓘ
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
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>ⓘimpl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1)
impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1)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>ⓘimpl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2)
impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2)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>ⓘimpl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)
impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn)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>ⓘimpl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)
impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)type Key = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn)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>ⓘimpl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)
impl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)type Key = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn)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>ⓘimpl<TupleElement0: KeyGeneratorInner, TupleElement1: KeyGeneratorInner, TupleElement2: KeyGeneratorInner, TupleElement3: KeyGeneratorInner, TupleElement4: KeyGeneratorInner, TupleElement5: KeyGeneratorInner, TupleElement6: KeyGeneratorInner> KeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn, TupleElement9::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn, TupleElement9::HashFn, TupleElement10::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn, TupleElement9::HashFn, TupleElement10::HashFn, TupleElement11::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn, TupleElement9::HashFn, TupleElement10::HashFn, TupleElement11::HashFn, TupleElement12::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn, TupleElement9::HashFn, TupleElement10::HashFn, TupleElement11::HashFn, TupleElement12::HashFn, TupleElement13::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key, TupleElement14::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key, TupleElement14::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn, TupleElement9::HashFn, TupleElement10::HashFn, TupleElement11::HashFn, TupleElement12::HashFn, TupleElement13::HashFn, TupleElement14::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key, TupleElement14::Key, TupleElement15::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key, TupleElement14::Key, TupleElement15::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn, TupleElement9::HashFn, TupleElement10::HashFn, TupleElement11::HashFn, TupleElement12::HashFn, TupleElement13::HashFn, TupleElement14::HashFn, TupleElement15::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key, TupleElement14::Key, TupleElement15::Key, TupleElement16::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key, TupleElement14::Key, TupleElement15::Key, TupleElement16::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn, TupleElement9::HashFn, TupleElement10::HashFn, TupleElement11::HashFn, TupleElement12::HashFn, TupleElement13::HashFn, TupleElement14::HashFn, TupleElement15::HashFn, TupleElement16::HashFn)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>ⓘ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)
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::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key, TupleElement14::Key, TupleElement15::Key, TupleElement16::Key, TupleElement17::Key)type KArg = (TupleElement0::Key, TupleElement1::Key, TupleElement2::Key, TupleElement3::Key, TupleElement4::Key, TupleElement5::Key, TupleElement6::Key, TupleElement7::Key, TupleElement8::Key, TupleElement9::Key, TupleElement10::Key, TupleElement11::Key, TupleElement12::Key, TupleElement13::Key, TupleElement14::Key, TupleElement15::Key, TupleElement16::Key, TupleElement17::Key)type HArg = (TupleElement0::HashFn, TupleElement1::HashFn, TupleElement2::HashFn, TupleElement3::HashFn, TupleElement4::HashFn, TupleElement5::HashFn, TupleElement6::HashFn, TupleElement7::HashFn, TupleElement8::HashFn, TupleElement9::HashFn, TupleElement10::HashFn, TupleElement11::HashFn, TupleElement12::HashFn, TupleElement13::HashFn, TupleElement14::HashFn, TupleElement15::HashFn, TupleElement16::HashFn, TupleElement17::HashFn)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>ⓘ