Struct dharitri_wasm::storage::mappers::SingleValueMapper
source · pub struct SingleValueMapper<SA, T>where
SA: StorageReadApi + StorageWriteApi + ManagedTypeApi + ErrorApi + Clone + 'static,
T: TopEncode + TopDecode + 'static,{ /* private fields */ }Expand description
Manages a single serializable item in storage.
Implementations§
source§impl<SA, T> SingleValueMapper<SA, T>where
SA: StorageReadApi + StorageWriteApi + ManagedTypeApi + ErrorApi + Clone + 'static,
T: TopEncode + TopDecode,
impl<SA, T> SingleValueMapper<SA, T>where
SA: StorageReadApi + StorageWriteApi + ManagedTypeApi + ErrorApi + Clone + 'static,
T: TopEncode + TopDecode,
sourcepub fn set_if_empty(&self, value: &T)
pub fn set_if_empty(&self, value: &T)
Saves argument to storage only if the storage is empty. Does nothing otherwise.
sourcepub fn update<R, F: FnOnce(&mut T) -> R>(&self, f: F) -> R
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.
pub fn raw_byte_length(&self) -> usize
Trait Implementations§
source§impl<SA, T> EndpointResult for SingleValueMapper<SA, T>where
SA: StorageReadApi + StorageWriteApi + ManagedTypeApi + ErrorApi + Clone + 'static,
T: TopEncode + TopDecode + EndpointResult,
impl<SA, T> EndpointResult for SingleValueMapper<SA, T>where
SA: StorageReadApi + StorageWriteApi + ManagedTypeApi + ErrorApi + Clone + 'static,
T: TopEncode + TopDecode + EndpointResult,
source§impl<SA, T> StorageMapper<SA> for SingleValueMapper<SA, T>where
SA: StorageReadApi + StorageWriteApi + ManagedTypeApi + ErrorApi + Clone + 'static,
T: TopEncode + TopDecode,
impl<SA, T> StorageMapper<SA> for SingleValueMapper<SA, T>where
SA: StorageReadApi + StorageWriteApi + ManagedTypeApi + ErrorApi + Clone + 'static,
T: TopEncode + TopDecode,
source§fn new(api: SA, base_key: StorageKey<SA>) -> Self
fn new(api: SA, 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>where
SA: StorageReadApi + StorageWriteApi + ManagedTypeApi + ErrorApi + Clone + 'static,
T: TopEncode + TopDecode + TypeAbi,
impl<SA, T> TypeAbi for SingleValueMapper<SA, T>where
SA: StorageReadApi + StorageWriteApi + ManagedTypeApi + ErrorApi + Clone + 'static,
T: TopEncode + TopDecode + TypeAbi,
fn type_name() -> TypeName
source§fn provide_type_descriptions<TDC: TypeDescriptionContainer>(
accumulator: &mut TDC
)
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>where
SA: RefUnwindSafe,
T: RefUnwindSafe,
impl<SA, T> Send for SingleValueMapper<SA, T>
impl<SA, T> Sync for SingleValueMapper<SA, T>
impl<SA, T> Unpin for SingleValueMapper<SA, T>
impl<SA, T> UnwindSafe for SingleValueMapper<SA, T>where
SA: UnwindSafe,
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more