Struct dharitri_wasm::storage::mappers::SingleValueMapper
source · pub struct SingleValueMapper<SA, T>{ /* private fields */ }Expand description
Manages a single serializable item in storage.
Implementations§
source§impl<SA, T> SingleValueMapper<SA, T>
impl<SA, T> SingleValueMapper<SA, T>
sourcepub fn set<BT>(&self, new_value: BT)where
BT: Borrow<T>,
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.
sourcepub fn set_if_empty<BT>(&self, value: BT)where
BT: Borrow<T>,
pub fn set_if_empty<BT>(&self, value: BT)where
BT: Borrow<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> StorageMapper<SA> for SingleValueMapper<SA, T>
impl<SA, T> StorageMapper<SA> for SingleValueMapper<SA, T>
source§fn new(base_key: StorageKey<SA>) -> Self
fn new(base_key: StorageKey<SA>) -> Self
Will be called automatically by the
#[storage_mapper] annotation generated code.source§impl<SA, T> TopEncodeMulti for SingleValueMapper<SA, T>
impl<SA, T> TopEncodeMulti for SingleValueMapper<SA, T>
source§fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
fn multi_encode_or_handle_err<O, H>(
&self,
output: &mut O,
h: H
) -> Result<(), H::HandledErr>where
O: TopEncodeMultiOutput,
H: EncodeErrorHandler,
Version of
top_encode that can handle errors as soon as they occur.
For instance in can exit immediately and make sure that if it returns, it is a success.
By not deferring error handling, this can lead to somewhat smaller bytecode.source§fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>where
O: TopEncodeMultiOutput,
Attempt to serialize the value to ouput.
source§impl<SA, T> TypeAbi for SingleValueMapper<SA, T>
impl<SA, T> TypeAbi for SingleValueMapper<SA, T>
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.
impl<SA, T> CodecFrom<SingleValueMapper<SA, T>> for PlaceholderOutput
impl<SA, T, R> CodecFrom<SingleValueMapper<SA, T>> for SingleValue<R>
impl<SA, T> !CodecFromSelf for SingleValueMapper<SA, T>
Auto Trait Implementations§
impl<SA, T> RefUnwindSafe for SingleValueMapper<SA, T>where
SA: RefUnwindSafe,
T: RefUnwindSafe,
<SA as HandleTypeInfo>::ManagedBufferHandle: 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>
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