Struct fadroma::storage::SingleItem
source · pub struct SingleItem<T: FadromaSerialize + FadromaDeserialize, N: Namespace> { /* private fields */ }
Expand description
Storage type that stores a single item under the given Namespace
.
Use this when there is only “one of” something.
Examples
use fadroma::{
cosmwasm_std::testing::mock_dependencies,
storage::SingleItem
};
fadroma::namespace!(NumberNs, b"number");
const NUMBER: SingleItem::<u64, NumberNs> = SingleItem::new();
let mut deps = mock_dependencies();
let storage = deps.as_mut().storage;
NUMBER.save(storage, &13).unwrap();
let stored = NUMBER.load_or_default(storage).unwrap();
assert_eq!(stored, 13);
Implementations§
source§impl<T: FadromaSerialize + FadromaDeserialize, N: Namespace> SingleItem<T, N>
impl<T: FadromaSerialize + FadromaDeserialize, N: Namespace> SingleItem<T, N>
pub const fn new() -> Self
pub fn namespace(&self) -> &'static [u8] ⓘ
pub fn save(&self, storage: &mut dyn Storage, item: &T) -> StdResult<()>
pub fn load(&self, storage: &dyn Storage) -> StdResult<Option<T>>
pub fn load_or_error(&self, storage: &dyn Storage) -> StdResult<T>
pub fn remove(&self, storage: &mut dyn Storage)
pub fn canonize_and_save<Input: Canonize<Output = T>>( &self, deps: DepsMut<'_>, item: Input ) -> StdResult<()>
source§impl<T: FadromaSerialize + FadromaDeserialize + Humanize, N: Namespace> SingleItem<T, N>
impl<T: FadromaSerialize + FadromaDeserialize + Humanize, N: Namespace> SingleItem<T, N>
source§impl<T: FadromaSerialize + FadromaDeserialize + Humanize, N: Namespace> SingleItem<T, N>where
<T as Humanize>::Output: Default,
impl<T: FadromaSerialize + FadromaDeserialize + Humanize, N: Namespace> SingleItem<T, N>where <T as Humanize>::Output: Default,
source§impl<T: FadromaSerialize + FadromaDeserialize + Default, N: Namespace> SingleItem<T, N>
impl<T: FadromaSerialize + FadromaDeserialize + Default, N: Namespace> SingleItem<T, N>
pub fn load_or_default(&self, storage: &dyn Storage) -> StdResult<T>
Auto Trait Implementations§
impl<T, N> RefUnwindSafe for SingleItem<T, N>where N: RefUnwindSafe, T: RefUnwindSafe,
impl<T, N> Send for SingleItem<T, N>where N: Send, T: Send,
impl<T, N> Sync for SingleItem<T, N>where N: Sync, T: Sync,
impl<T, N> Unpin for SingleItem<T, N>where N: Unpin, T: Unpin,
impl<T, N> UnwindSafe for SingleItem<T, N>where N: 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