[][src]Struct sp_runtime::offchain::storage::StorageValueRef

pub struct StorageValueRef<'a> { /* fields omitted */ }

An abstraction over local storage value.

Implementations

impl<'a> StorageValueRef<'a>[src]

pub fn persistent(key: &'a [u8]) -> Self[src]

Create a new reference to a value in the persistent local storage.

pub fn local(key: &'a [u8]) -> Self[src]

Create a new reference to a value in the fork-aware local storage.

pub fn set(&self, value: &impl Encode)[src]

Set the value of the storage to encoding of given parameter.

Note that the storage may be accessed by workers running concurrently, if you happen to write a get-check-set pattern you should most likely be using mutate instead.

pub fn clear(&mut self)[src]

Remove the associated value from the storage.

pub fn get<T: Decode>(&self) -> Option<Option<T>>[src]

Retrieve & decode the value from storage.

Note that if you want to do some checks based on the value and write changes after that you should rather be using mutate.

The function returns None if the value was not found in storage, otherwise a decoding of the value to requested type.

pub fn mutate<T, E, F>(&self, f: F) -> Result<Result<T, T>, E> where
    T: Codec,
    F: FnOnce(Option<Option<T>>) -> Result<T, E>, 
[src]

Retrieve & decode the value and set it to a new one atomically.

Function f should return a new value that we should attempt to write to storage. This function returns:

  1. Ok(Ok(T)) in case the value has been successfully set.
  2. Ok(Err(T)) in case the value was calculated by the passed closure f, but it could not be stored.
  3. Err(_) in case f returns an error.

Auto Trait Implementations

impl<'a> RefUnwindSafe for StorageValueRef<'a>

impl<'a> Send for StorageValueRef<'a>

impl<'a> Sync for StorageValueRef<'a>

impl<'a> Unpin for StorageValueRef<'a>

impl<'a> UnwindSafe for StorageValueRef<'a>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedConversion for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, Outer> IsWrappedBy<Outer> for T where
    Outer: AsRef<T> + AsMut<T> + From<T>,
    T: From<Outer>, 
[src]

fn from_ref(outer: &Outer) -> &T[src]

Get a reference to the inner from the outer.

fn from_mut(outer: &mut Outer) -> &mut T[src]

Get a mutable reference to the inner from the outer.

impl<T> MaybeRefUnwindSafe for T where
    T: RefUnwindSafe
[src]

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> SaturatedConversion for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 
[src]

impl<T, S> UniqueSaturatedInto<T> for S where
    S: TryInto<T>,
    T: Bounded
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]