Struct ink_storage::lazy::LazyCell [−][src]
A lazy storage entity.
This loads its value from storage upon first use.
Note
Use this if the storage field doesn’t need to be loaded in some or most cases.
Implementations
impl<T> LazyCell<T> where
T: SpreadLayout,
[src]
T: SpreadLayout,
#[must_use]pub fn new(value: Option<T>) -> Self
[src]
Creates an already populated lazy storage cell.
Note
Since this already has a value it will never actually load from the contract storage.
#[must_use]pub fn lazy(key: Key) -> Self
[src]
Creates a lazy storage cell for the given key.
Note
This will actually lazily load from the associated storage cell upon access.
impl<T> LazyCell<T> where
T: SpreadLayout,
[src]
T: SpreadLayout,
#[must_use]pub fn get(&self) -> Option<&T>
[src]
Returns a shared reference to the value.
Note
This eventually lazily loads the value from the contract storage.
Panics
If decoding the loaded value to T
failed.
#[must_use]pub fn get_mut(&mut self) -> Option<&mut T>
[src]
Returns an exclusive reference to the value.
Note
This eventually lazily loads the value from the contract storage.
Panics
If decoding the loaded value to T
failed.
pub fn set(&mut self, new_value: T)
[src]
Trait Implementations
impl<T> Debug for LazyCell<T> where
T: Debug + SpreadLayout,
[src]
T: Debug + SpreadLayout,
impl<T> Default for LazyCell<T> where
T: Default + SpreadLayout,
[src]
T: Default + SpreadLayout,
impl<T> Drop for LazyCell<T> where
T: SpreadLayout,
[src]
T: SpreadLayout,
impl<T> From<T> for LazyCell<T> where
T: SpreadLayout,
[src]
T: SpreadLayout,
impl<T> SpreadLayout for LazyCell<T> where
T: SpreadLayout,
[src]
T: SpreadLayout,
const FOOTPRINT: u64
[src]
fn pull_spread(ptr: &mut KeyPtr) -> Self
[src]
fn push_spread(&self, ptr: &mut KeyPtr)
[src]
fn clear_spread(&self, ptr: &mut KeyPtr)
[src]
const REQUIRES_DEEP_CLEAN_UP: bool
[src]
impl<T> StorageLayout for LazyCell<T> where
T: StorageLayout + SpreadLayout,
[src]
T: StorageLayout + SpreadLayout,
Auto Trait Implementations
impl<T> !RefUnwindSafe for LazyCell<T>
impl<T> Send for LazyCell<T> where
T: Send,
T: Send,
impl<T> !Sync for LazyCell<T>
impl<T> Unpin for LazyCell<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for LazyCell<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<!> for T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,