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>

Implementations on Foreign Types§

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)

§

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, 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> 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> ReversibleKeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)

§

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, 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, 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> 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> ReversibleKeyGenerator for (TupleElement0, TupleElement1, TupleElement2)

§

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)

§

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, TupleElement5: ReversibleKeyGenerator + KeyGeneratorInner, TupleElement6: ReversibleKeyGenerator + KeyGeneratorInner, TupleElement7: ReversibleKeyGenerator + KeyGeneratorInner> ReversibleKeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)

§

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, <TupleElement6 as ReversibleKeyGenerator>::ReversibleHasher, <TupleElement7 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, 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, 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)

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> ReversibleKeyGenerator for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)

§

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, <TupleElement6 as ReversibleKeyGenerator>::ReversibleHasher)

source§

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

source§

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

§

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, 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)

Implementors§

source§

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