referrerpolicy=no-referrer-when-downgrade
frame_support::storage::types

Trait ReversibleKeyGenerator

Source
pub trait ReversibleKeyGenerator: KeyGenerator {
    type ReversibleHasher;

    // Required method
    fn decode_final_key(
        key_material: &[u8],
    ) -> Result<(Self::Key, &[u8]), Error>;
}
Expand description

A trait that indicates the hashers for the keys generated are all reversible.

Required Associated Types§

Required Methods§

Source

fn decode_final_key(key_material: &[u8]) -> Result<(Self::Key, &[u8]), Error>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<TupleElement0: ReversibleKeyGenerator + KeyGeneratorInner, TupleElement1: ReversibleKeyGenerator + KeyGeneratorInner> ReversibleKeyGenerator for (TupleElement0, TupleElement1)

Source§

type ReversibleHasher = (<TupleElement0 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement1 as ReversibleKeyGenerator>::ReversibleHasher)

Source§

fn decode_final_key(key_material: &[u8]) -> Result<(Self::Key, &[u8]), Error>

Source§

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

Source§

type ReversibleHasher = (<TupleElement0 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement1 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement2 as ReversibleKeyGenerator>::ReversibleHasher)

Source§

fn decode_final_key(key_material: &[u8]) -> Result<(Self::Key, &[u8]), Error>

Source§

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

Source§

type ReversibleHasher = (<TupleElement0 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement1 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement2 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement3 as ReversibleKeyGenerator>::ReversibleHasher)

Source§

fn decode_final_key(key_material: &[u8]) -> Result<(Self::Key, &[u8]), Error>

Source§

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

Source§

type ReversibleHasher = (<TupleElement0 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement1 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement2 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement3 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement4 as ReversibleKeyGenerator>::ReversibleHasher)

Source§

fn decode_final_key(key_material: &[u8]) -> Result<(Self::Key, &[u8]), Error>

Source§

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

Source§

type ReversibleHasher = (<TupleElement0 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement1 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement2 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement3 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement4 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement5 as ReversibleKeyGenerator>::ReversibleHasher)

Source§

fn decode_final_key(key_material: &[u8]) -> Result<(Self::Key, &[u8]), Error>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Implementors§

Source§

impl<H: ReversibleStorageHasher, K: FullCodec + StaticTypeInfo> ReversibleKeyGenerator for Key<H, K>