Struct frame_support::pallet_prelude::StorageValue
source · [−]pub struct StorageValue<Prefix, Value, QueryKind = OptionQuery, OnEmpty = GetDefault>(_);
Expand description
A type that allow to store a value.
Each value is stored at:
Twox128(Prefix::pallet_prefix()) ++ Twox128(Prefix::STORAGE_PREFIX)
Implementations
sourceimpl<Prefix, Value, QueryKind, OnEmpty> StorageValue<Prefix, Value, QueryKind, OnEmpty> where
Prefix: StorageInstance,
Value: FullCodec,
QueryKind: QueryKindTrait<Value, OnEmpty>,
OnEmpty: Get<QueryKind::Query> + 'static,
impl<Prefix, Value, QueryKind, OnEmpty> StorageValue<Prefix, Value, QueryKind, OnEmpty> where
Prefix: StorageInstance,
Value: FullCodec,
QueryKind: QueryKindTrait<Value, OnEmpty>,
OnEmpty: Get<QueryKind::Query> + 'static,
sourcepub fn hashed_key() -> [u8; 32]
pub fn hashed_key() -> [u8; 32]
Get the storage key.
sourcepub fn try_get() -> Result<Value, ()>
pub fn try_get() -> Result<Value, ()>
Try to get the underlying value from the provided storage instance; Ok
if it exists,
Err
if not.
sourcepub fn translate<O: Decode, F: FnOnce(Option<O>) -> Option<Value>>(
f: F
) -> Result<Option<Value>, ()>
pub fn translate<O: Decode, F: FnOnce(Option<O>) -> Option<Value>>(
f: F
) -> Result<Option<Value>, ()>
Translate a value from some previous type (O
) to the current type.
f: F
is the translation function.
Returns Err
if the storage item could not be interpreted as the old type, and Ok, along
with the new value if it could.
NOTE: This operates from and to Option<_>
types; no effort is made to respect the default
value of the original type.
Warning
This function must be used with care, before being updated the storage still contains the
old type, thus other calls (such as get
) will fail at decoding it.
Usage
This would typically be called inside the module implementation of on_runtime_upgrade,
while ensuring no usage of this storage are made before the call to
on_runtime_upgrade
. (More precisely prior initialized modules doesn’t make use of this
storage).
sourcepub fn put<Arg: EncodeLike<Value>>(val: Arg)
pub fn put<Arg: EncodeLike<Value>>(val: Arg)
Store a value under this key into the provided storage instance.
sourcepub fn set(val: QueryKind::Query)
pub fn set(val: QueryKind::Query)
Store a value under this key into the provided storage instance.
this uses the query type rather than the underlying value.
sourcepub fn try_mutate<R, E, F: FnOnce(&mut QueryKind::Query) -> Result<R, E>>(
f: F
) -> Result<R, E>
pub fn try_mutate<R, E, F: FnOnce(&mut QueryKind::Query) -> Result<R, E>>(
f: F
) -> Result<R, E>
Mutate the value if closure returns Ok
sourcepub fn append<Item, EncodeLikeItem>(item: EncodeLikeItem) where
Item: Encode,
EncodeLikeItem: EncodeLike<Item>,
Value: StorageAppend<Item>,
pub fn append<Item, EncodeLikeItem>(item: EncodeLikeItem) where
Item: Encode,
EncodeLikeItem: EncodeLike<Item>,
Value: StorageAppend<Item>,
Append the given item to the value in the storage.
Value
is required to implement StorageAppend
.
Warning
If the storage item is not encoded properly, the storage item will be overwritten
and set to [item]
. Any default value set for the storage item will be ignored
on overwrite.
sourcepub fn decode_len() -> Option<usize> where
Value: StorageDecodeLength,
pub fn decode_len() -> Option<usize> where
Value: StorageDecodeLength,
Read the length of the storage value without decoding the entire value.
Value
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.
Trait Implementations
sourceimpl<Prefix, Value, QueryKind, OnEmpty> StorageValueMetadata for StorageValue<Prefix, Value, QueryKind, OnEmpty> where
Prefix: StorageInstance,
Value: FullCodec,
QueryKind: QueryKindTrait<Value, OnEmpty>,
OnEmpty: Get<QueryKind::Query> + 'static,
impl<Prefix, Value, QueryKind, OnEmpty> StorageValueMetadata for StorageValue<Prefix, Value, QueryKind, OnEmpty> where
Prefix: StorageInstance,
Value: FullCodec,
QueryKind: QueryKindTrait<Value, OnEmpty>,
OnEmpty: Get<QueryKind::Query> + 'static,
const MODIFIER: StorageEntryModifier
const NAME: &'static str
const DEFAULT: DefaultByteGetter
Auto Trait Implementations
impl<Prefix, Value, QueryKind, OnEmpty> RefUnwindSafe for StorageValue<Prefix, Value, QueryKind, OnEmpty> where
OnEmpty: RefUnwindSafe,
Prefix: RefUnwindSafe,
QueryKind: RefUnwindSafe,
Value: RefUnwindSafe,
impl<Prefix, Value, QueryKind, OnEmpty> Send for StorageValue<Prefix, Value, QueryKind, OnEmpty> where
OnEmpty: Send,
Prefix: Send,
QueryKind: Send,
Value: Send,
impl<Prefix, Value, QueryKind, OnEmpty> Sync for StorageValue<Prefix, Value, QueryKind, OnEmpty> where
OnEmpty: Sync,
Prefix: Sync,
QueryKind: Sync,
Value: Sync,
impl<Prefix, Value, QueryKind, OnEmpty> Unpin for StorageValue<Prefix, Value, QueryKind, OnEmpty> where
OnEmpty: Unpin,
Prefix: Unpin,
QueryKind: Unpin,
Value: Unpin,
impl<Prefix, Value, QueryKind, OnEmpty> UnwindSafe for StorageValue<Prefix, Value, QueryKind, OnEmpty> where
OnEmpty: UnwindSafe,
Prefix: UnwindSafe,
QueryKind: UnwindSafe,
Value: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedConversion for T
impl<T> CheckedConversion for T
sourcefn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
Convert from a value of T
into an equivalent instance of Option<Self>
. Read more
sourcefn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
Consume self to return Some
equivalent value of Option<T>
. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
sourceimpl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
sourcefn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Convert from a value of T
into an equivalent instance of Self
. Read more
sourcefn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of T
. Read more
sourceimpl<T, G> StorageValue<T> for G where
T: FullCodec,
G: StorageValue<T>,
impl<T, G> StorageValue<T> for G where
T: FullCodec,
G: StorageValue<T>,
type Query = G::Query
type Query = G::Query
The type that get/take return.
sourcefn hashed_key() -> [u8; 32]
fn hashed_key() -> [u8; 32]
Get the storage key.
sourcefn try_get() -> Result<T, ()>
fn try_get() -> Result<T, ()>
Try to get the underlying value from the provided storage instance. Read more
sourcefn translate<O: Decode, F: FnOnce(Option<O>) -> Option<T>>(
f: F
) -> Result<Option<T>, ()>
fn translate<O: Decode, F: FnOnce(Option<O>) -> Option<T>>(
f: F
) -> Result<Option<T>, ()>
Translate a value from some previous type (O
) to the current type. Read more
sourcefn put<Arg: EncodeLike<T>>(val: Arg)
fn put<Arg: EncodeLike<T>>(val: Arg)
Store a value under this key into the provided storage instance.
sourcefn set(maybe_val: Self::Query)
fn set(maybe_val: Self::Query)
Store a value under this key into the provided storage instance; this uses the query type rather than the underlying value. Read more
sourcefn try_mutate<R, E, F: FnOnce(&mut G::Query) -> Result<R, E>>(
f: F
) -> Result<R, E>
fn try_mutate<R, E, F: FnOnce(&mut G::Query) -> Result<R, E>>(
f: F
) -> Result<R, E>
Mutate the value if closure returns Ok
sourcefn append<Item, EncodeLikeItem>(item: EncodeLikeItem) where
Item: Encode,
EncodeLikeItem: EncodeLike<Item>,
T: StorageAppend<Item>,
fn append<Item, EncodeLikeItem>(item: EncodeLikeItem) where
Item: Encode,
EncodeLikeItem: EncodeLike<Item>,
T: StorageAppend<Item>,
Append the given item to the value in the storage. Read more
sourcefn decode_len() -> Option<usize> where
T: StorageDecodeLength,
fn decode_len() -> Option<usize> where
T: StorageDecodeLength,
Read the length of the storage value without decoding the entire value. Read more
sourceimpl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
sourcepub fn unchecked_into(self) -> T
pub fn unchecked_into(self) -> T
The counterpart to unchecked_from
.
sourceimpl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
sourcepub fn unique_saturated_into(self) -> T
pub fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of T
.