StorageKey

Trait StorageKey 

Source
pub trait StorageKey {
    // Required methods
    fn encode_storage_key(
        &self,
        bytes: &mut Vec<u8>,
        hashers: &mut StorageHashersIter<'_>,
        types: &PortableRegistry,
    ) -> Result<(), Error>;
    fn decode_storage_key(
        bytes: &mut &[u8],
        hashers: &mut StorageHashersIter<'_>,
        types: &PortableRegistry,
    ) -> Result<Self, Error>
       where Self: Sized + 'static;
}
Expand description

This trait should be implemented by anything that can be used as one or multiple storage keys.

Required Methods§

Source

fn encode_storage_key( &self, bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<(), Error>

Encodes the storage key into some bytes

Source

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>
where Self: Sized + 'static,

Attempts to decode the StorageKey given some bytes and a set of hashers and type IDs that they are meant to represent. The bytes passed to decode should start with:

    1. some fixed size hash (for all hashers except Identity)
    1. the plain key value itself (for Identity, Blake2_128Concat and Twox64Concat hashers)

Implementations on Foreign Types§

Source§

impl StorageKey for ()

Implement StorageKey for () which can be used for keyless storage entries, or to otherwise just ignore some entry.

Source§

fn encode_storage_key( &self, _bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, _types: &PortableRegistry, ) -> Result<(), Error>

Source§

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>

Source§

impl StorageKey for Vec<Value>

Source§

fn encode_storage_key( &self, bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<(), Error>

Source§

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>
where Self: Sized + 'static,

Source§

impl<A: StorageKey, B: StorageKey> StorageKey for (A, B)

Source§

fn encode_storage_key( &self, bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<(), Error>

Source§

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>
where Self: Sized + 'static,

Source§

impl<A: StorageKey, B: StorageKey, C: StorageKey> StorageKey for (A, B, C)

Source§

fn encode_storage_key( &self, bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<(), Error>

Source§

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>
where Self: Sized + 'static,

Source§

impl<A: StorageKey, B: StorageKey, C: StorageKey, D: StorageKey> StorageKey for (A, B, C, D)

Source§

fn encode_storage_key( &self, bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<(), Error>

Source§

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>
where Self: Sized + 'static,

Source§

impl<A: StorageKey, B: StorageKey, C: StorageKey, D: StorageKey, E: StorageKey> StorageKey for (A, B, C, D, E)

Source§

fn encode_storage_key( &self, bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<(), Error>

Source§

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>
where Self: Sized + 'static,

Source§

impl<A: StorageKey, B: StorageKey, C: StorageKey, D: StorageKey, E: StorageKey, F: StorageKey> StorageKey for (A, B, C, D, E, F)

Source§

fn encode_storage_key( &self, bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<(), Error>

Source§

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>
where Self: Sized + 'static,

Source§

impl<A: StorageKey, B: StorageKey, C: StorageKey, D: StorageKey, E: StorageKey, F: StorageKey, G: StorageKey> StorageKey for (A, B, C, D, E, F, G)

Source§

fn encode_storage_key( &self, bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<(), Error>

Source§

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>
where Self: Sized + 'static,

Source§

impl<A: StorageKey, B: StorageKey, C: StorageKey, D: StorageKey, E: StorageKey, F: StorageKey, G: StorageKey, H: StorageKey> StorageKey for (A, B, C, D, E, F, G, H)

Source§

fn encode_storage_key( &self, bytes: &mut Vec<u8>, hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<(), Error>

Source§

fn decode_storage_key( bytes: &mut &[u8], hashers: &mut StorageHashersIter<'_>, types: &PortableRegistry, ) -> Result<Self, Error>
where Self: Sized + 'static,

Implementors§