[−][src]Trait frame_support::storage::StorageMap
A strongly-typed map in storage.
Details on implementation can be found at
[generator::StorageMap
]
Associated Types
type Query
The type that get/take return.
Required methods
fn hashed_key_for<KeyArg: EncodeLike<K>>(key: KeyArg) -> Vec<u8>ⓘ
Get the storage key used to fetch a value corresponding to a specific key.
fn contains_key<KeyArg: EncodeLike<K>>(key: KeyArg) -> bool
Does the value (explicitly) exist in storage?
fn get<KeyArg: EncodeLike<K>>(key: KeyArg) -> Self::Query
Load the value associated with the given key from the map.
fn swap<KeyArg1: EncodeLike<K>, KeyArg2: EncodeLike<K>>(
key1: KeyArg1,
key2: KeyArg2
)
key1: KeyArg1,
key2: KeyArg2
)
Swap the values of two keys.
fn insert<KeyArg: EncodeLike<K>, ValArg: EncodeLike<V>>(
key: KeyArg,
val: ValArg
)
key: KeyArg,
val: ValArg
)
Store a value to be associated with the given key from the map.
fn remove<KeyArg: EncodeLike<K>>(key: KeyArg)
Remove the value under a key.
fn mutate<KeyArg: EncodeLike<K>, R, F: FnOnce(&mut Self::Query) -> R>(
key: KeyArg,
f: F
) -> R
key: KeyArg,
f: F
) -> R
Mutate the value under a key.
fn try_mutate<KeyArg: EncodeLike<K>, R, E, F: FnOnce(&mut Self::Query) -> Result<R, E>>(
key: KeyArg,
f: F
) -> Result<R, E>
key: KeyArg,
f: F
) -> Result<R, E>
Mutate the item, only if an Ok
value is returned.
fn mutate_exists<KeyArg: EncodeLike<K>, R, F: FnOnce(&mut Option<V>) -> R>(
key: KeyArg,
f: F
) -> R
key: KeyArg,
f: F
) -> R
Mutate the value under a key. Deletes the item if mutated to a None
.
fn try_mutate_exists<KeyArg: EncodeLike<K>, R, E, F: FnOnce(&mut Option<V>) -> Result<R, E>>(
key: KeyArg,
f: F
) -> Result<R, E>
key: KeyArg,
f: F
) -> Result<R, E>
Mutate the item, only if an Ok
value is returned. Deletes the item if mutated to a None
.
fn take<KeyArg: EncodeLike<K>>(key: KeyArg) -> Self::Query
Take the value under a key.
fn append<Item, EncodeLikeItem, EncodeLikeKey>(
key: EncodeLikeKey,
item: EncodeLikeItem
) where
EncodeLikeKey: EncodeLike<K>,
Item: Encode,
EncodeLikeItem: EncodeLike<Item>,
V: StorageAppend<Item>,
key: EncodeLikeKey,
item: EncodeLikeItem
) where
EncodeLikeKey: EncodeLike<K>,
Item: Encode,
EncodeLikeItem: EncodeLike<Item>,
V: StorageAppend<Item>,
Append the given items to the value in the storage.
V
is required to implement codec::EncodeAppend
.
Warning
If the storage item is not encoded properly, the storage will be overwritten
and set to [item]
. Any default value set for the storage item will be ignored
on overwrite.
fn migrate_key<OldHasher: StorageHasher, KeyArg: EncodeLike<K>>(
key: KeyArg
) -> Option<V>
key: KeyArg
) -> Option<V>
Migrate an item with the given key
from a defunct OldHasher
to the current hasher.
If the key doesn't exist, then it's a no-op. If it does, then it returns its value.
Provided methods
fn decode_len<KeyArg: EncodeLike<K>>(key: KeyArg) -> Option<usize> where
V: StorageDecodeLength,
V: StorageDecodeLength,
Read the length of the storage value without decoding the entire value under the
given key
.
V
is required to implement StorageDecodeLength
.
If the value does not exists or it fails to decode the length, None
is returned.
Otherwise Some(len)
is returned.
Warning
None
does not mean that get()
does not return a value. The default value is completly
ignored by this function.
fn migrate_key_from_blake<KeyArg: EncodeLike<K>>(key: KeyArg) -> Option<V>
Migrate an item with the given key
from a blake2_256
hasher to the current hasher.
If the key doesn't exist, then it's a no-op. If it does, then it returns its value.
Implementors
impl<K: FullEncode, V: FullCodec, G: StorageMap<K, V>> StorageMap<K, V> for G
[src]
type Query = G::Query
fn hashed_key_for<KeyArg: EncodeLike<K>>(key: KeyArg) -> Vec<u8>ⓘ
[src]
fn swap<KeyArg1: EncodeLike<K>, KeyArg2: EncodeLike<K>>(
key1: KeyArg1,
key2: KeyArg2
)
[src]
key1: KeyArg1,
key2: KeyArg2
)
fn contains_key<KeyArg: EncodeLike<K>>(key: KeyArg) -> bool
[src]
fn get<KeyArg: EncodeLike<K>>(key: KeyArg) -> Self::Query
[src]
fn insert<KeyArg: EncodeLike<K>, ValArg: EncodeLike<V>>(
key: KeyArg,
val: ValArg
)
[src]
key: KeyArg,
val: ValArg
)
fn remove<KeyArg: EncodeLike<K>>(key: KeyArg)
[src]
fn mutate<KeyArg: EncodeLike<K>, R, F: FnOnce(&mut Self::Query) -> R>(
key: KeyArg,
f: F
) -> R
[src]
key: KeyArg,
f: F
) -> R
fn mutate_exists<KeyArg: EncodeLike<K>, R, F: FnOnce(&mut Option<V>) -> R>(
key: KeyArg,
f: F
) -> R
[src]
key: KeyArg,
f: F
) -> R
fn try_mutate<KeyArg: EncodeLike<K>, R, E, F: FnOnce(&mut Self::Query) -> Result<R, E>>(
key: KeyArg,
f: F
) -> Result<R, E>
[src]
key: KeyArg,
f: F
) -> Result<R, E>
fn try_mutate_exists<KeyArg: EncodeLike<K>, R, E, F: FnOnce(&mut Option<V>) -> Result<R, E>>(
key: KeyArg,
f: F
) -> Result<R, E>
[src]
key: KeyArg,
f: F
) -> Result<R, E>
fn take<KeyArg: EncodeLike<K>>(key: KeyArg) -> Self::Query
[src]
fn append<Item, EncodeLikeItem, EncodeLikeKey>(
key: EncodeLikeKey,
item: EncodeLikeItem
) where
EncodeLikeKey: EncodeLike<K>,
Item: Encode,
EncodeLikeItem: EncodeLike<Item>,
V: StorageAppend<Item>,
[src]
key: EncodeLikeKey,
item: EncodeLikeItem
) where
EncodeLikeKey: EncodeLike<K>,
Item: Encode,
EncodeLikeItem: EncodeLike<Item>,
V: StorageAppend<Item>,
fn migrate_key<OldHasher: StorageHasher, KeyArg: EncodeLike<K>>(
key: KeyArg
) -> Option<V>
[src]
key: KeyArg
) -> Option<V>