pub struct SingleValueMapper<SA, T>
where SA: StorageMapperApi, T: TopEncode + TopDecode + 'static,
{ /* private fields */ }
Expand description

Manages a single serializable item in storage.

Implementations§

source§

impl<SA, T> SingleValueMapper<SA, T>

source

pub fn get(&self) -> T

Retrieves current value from storage.

source

pub fn is_empty(&self) -> bool

Returns whether the storage managed by this mapper is empty.

source

pub fn set<BT>(&self, new_value: BT)
where BT: Borrow<T>,

Saves argument to storage.

Accepts owned item of type T, or any borrowed form of it, such as &T.

source

pub fn set_if_empty(&self, value: &T)

Saves argument to storage only if the storage is empty. Does nothing otherwise.

source

pub fn clear(&self)

Clears the storage for this mapper.

source

pub fn update<R, F: FnOnce(&mut T) -> R>(&self, f: F) -> R

Syntactic sugar, to more compactly express a get, update and set in one line. Takes whatever lies in storage, apples the given closure and saves the final value back to storage. Propagates the return value of the given function.

source

pub fn raw_byte_length(&self) -> usize

Trait Implementations§

source§

impl<SA, T> EndpointResult for SingleValueMapper<SA, T>

§

type DecodeAs = <T as EndpointResult>::DecodeAs

Indicates how the result of the endpoint can be interpreted when called via proxy. Self for most types.
source§

fn finish<FA>(&self)

source§

impl<SA, T> StorageMapper<SA> for SingleValueMapper<SA, T>

source§

fn new(base_key: StorageKey<SA>) -> Self

Will be called automatically by the #[storage_mapper] annotation generated code.
source§

impl<SA, T> TypeAbi for SingleValueMapper<SA, T>

source§

fn type_name() -> TypeName

source§

fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC )

A type can provide more than its own description. For instance, a struct can also provide the descriptions of the type of its fields. TypeAbi doesn’t care for the exact accumulator type, which is abstracted by the TypeDescriptionContainer trait.

Auto Trait Implementations§

§

impl<SA, T> RefUnwindSafe for SingleValueMapper<SA, T>

§

impl<SA, T> Send for SingleValueMapper<SA, T>
where SA: Send, T: Send,

§

impl<SA, T> Sync for SingleValueMapper<SA, T>
where SA: Sync, T: Sync,

§

impl<SA, T> Unpin for SingleValueMapper<SA, T>
where SA: Unpin, T: Unpin,

§

impl<SA, T> UnwindSafe for SingleValueMapper<SA, T>
where SA: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.