Struct secret_cosmwasm_storage::Singleton
source · [−]pub struct Singleton<'a, S: Storage, T> where
T: Serialize + DeserializeOwned, { /* private fields */ }
Expand description
Singleton effectively combines PrefixedStorage with TypedStorage to work on a single storage key. It performs the to_length_prefixed transformation on the given name to ensure no collisions, and then provides the standard TypedStorage accessors, without requiring a key (which is defined in the constructor)
Implementations
sourceimpl<'a, S: Storage, T> Singleton<'a, S, T> where
T: Serialize + DeserializeOwned,
impl<'a, S: Storage, T> Singleton<'a, S, T> where
T: Serialize + DeserializeOwned,
pub fn new(storage: &'a mut S, key: &[u8]) -> Self
sourcepub fn save(&mut self, data: &T) -> StdResult<()>
pub fn save(&mut self, data: &T) -> StdResult<()>
save will serialize the model and store, returns an error on serialization issues
pub fn remove(&mut self)
sourcepub fn load(&self) -> StdResult<T>
pub fn load(&self) -> StdResult<T>
load will return an error if no data is set at the given key, or on parse error
sourcepub fn may_load(&self) -> StdResult<Option<T>>
pub fn may_load(&self) -> StdResult<Option<T>>
may_load will parse the data stored at the key if present, returns Ok(None) if no data there. returns an error on issues parsing
sourcepub fn update<A>(&mut self, action: A) -> StdResult<T> where
A: FnOnce(T) -> StdResult<T>,
pub fn update<A>(&mut self, action: A) -> StdResult<T> where
A: FnOnce(T) -> StdResult<T>,
update will load the data, perform the specified action, and store the result in the database. This is shorthand for some common sequences, which may be useful
This is the least stable of the APIs, and definitely needs some usage
Auto Trait Implementations
impl<'a, S, T> RefUnwindSafe for Singleton<'a, S, T> where
S: RefUnwindSafe,
T: RefUnwindSafe,
impl<'a, S, T> Send for Singleton<'a, S, T> where
S: Send,
T: Sync,
impl<'a, S, T> Sync for Singleton<'a, S, T> where
S: Sync,
T: Sync,
impl<'a, S, T> Unpin for Singleton<'a, S, T>
impl<'a, S, T> !UnwindSafe for Singleton<'a, S, T>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more