Struct frame_support::traits::StorageMapShim [−][src]
A shim for placing around a storage item in order to use it as a StoredValue
. Ideally this
wouldn’t be needed as StorageValue
s should blanket implement StoredValue
s, however this
would break the ability to have custom impls of StoredValue
. The other workaround is to
implement it directly in the macro.
This form has the advantage that two additional types are provides, Created
and Removed
,
which are both generic events that can be tied to handlers to do something in the case of being
about to create an account where one didn’t previously exist (at all; not just where it used to
be the default value), or where the account is being removed or reset back to the default value
where previously it did exist (though may have been in a default state). This works well with
system module’s CallOnCreatedAccount
and CallKillAccount
.
Trait Implementations
impl<S: StorageMap<K, T, Query = T>, Created: Happened<K>, Removed: Happened<K>, K: FullCodec, T: FullCodec> StoredMap<K, T> for StorageMapShim<S, Created, Removed, K, T>
[src]
fn get(k: &K) -> T
[src]
fn is_explicit(k: &K) -> bool
[src]
fn insert(k: &K, t: T)
[src]
fn remove(k: &K)
[src]
fn mutate<R>(k: &K, f: impl FnOnce(&mut T) -> R) -> R
[src]
fn mutate_exists<R>(k: &K, f: impl FnOnce(&mut Option<T>) -> R) -> R
[src]
fn try_mutate_exists<R, E>(
k: &K,
f: impl FnOnce(&mut Option<T>) -> Result<R, E>
) -> Result<R, E>
[src]
k: &K,
f: impl FnOnce(&mut Option<T>) -> Result<R, E>
) -> Result<R, E>
Auto Trait Implementations
impl<S, Created, Removed, K, T> RefUnwindSafe for StorageMapShim<S, Created, Removed, K, T> where
Created: RefUnwindSafe,
K: RefUnwindSafe,
Removed: RefUnwindSafe,
S: RefUnwindSafe,
T: RefUnwindSafe,
Created: RefUnwindSafe,
K: RefUnwindSafe,
Removed: RefUnwindSafe,
S: RefUnwindSafe,
T: RefUnwindSafe,
impl<S, Created, Removed, K, T> Send for StorageMapShim<S, Created, Removed, K, T> where
Created: Send,
K: Send,
Removed: Send,
S: Send,
T: Send,
Created: Send,
K: Send,
Removed: Send,
S: Send,
T: Send,
impl<S, Created, Removed, K, T> Sync for StorageMapShim<S, Created, Removed, K, T> where
Created: Sync,
K: Sync,
Removed: Sync,
S: Sync,
T: Sync,
Created: Sync,
K: Sync,
Removed: Sync,
S: Sync,
T: Sync,
impl<S, Created, Removed, K, T> Unpin for StorageMapShim<S, Created, Removed, K, T> where
Created: Unpin,
K: Unpin,
Removed: Unpin,
S: Unpin,
T: Unpin,
Created: Unpin,
K: Unpin,
Removed: Unpin,
S: Unpin,
T: Unpin,
impl<S, Created, Removed, K, T> UnwindSafe for StorageMapShim<S, Created, Removed, K, T> where
Created: UnwindSafe,
K: UnwindSafe,
Removed: UnwindSafe,
S: UnwindSafe,
T: UnwindSafe,
Created: UnwindSafe,
K: UnwindSafe,
Removed: UnwindSafe,
S: 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> CheckedConversion for T
[src]
pub fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
[src]
Self: TryFrom<T>,
pub fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
[src]
Self: TryInto<T>,
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IsType<T> for T
[src]
pub fn from_ref(&T) -> &T
[src]
pub fn into_ref(&Self) -> &T
[src]
pub fn from_mut(&mut T) -> &mut T
[src]
pub fn into_mut(&mut Self) -> &mut T
[src]
impl<T, Outer> IsWrappedBy<Outer> for T where
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
[src]
T: From<Outer>,
Outer: AsRef<T> + AsMut<T> + From<T>,
pub fn from_ref(outer: &Outer) -> &T
[src]
Get a reference to the inner from the outer.
pub fn from_mut(outer: &mut Outer) -> &mut T
[src]
Get a mutable reference to the inner from the outer.
impl<T> MaybeRefUnwindSafe for T where
T: RefUnwindSafe,
[src]
T: RefUnwindSafe,
impl<T> Pointable for T
[src]
pub const ALIGN: usize
[src]
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
[src]
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
[src]
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
[src]
pub unsafe fn drop(ptr: usize)
[src]
impl<T> Same<T> for T
[src]
type Output = T
Should always be Self
impl<T> SaturatedConversion for T
[src]
pub fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
[src]
Self: UniqueSaturatedFrom<T>,
pub fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
[src]
Self: UniqueSaturatedInto<T>,
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<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
[src]
T: UncheckedFrom<S>,
pub fn unchecked_into(self) -> T
[src]
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
[src]
T: Bounded,
S: TryInto<T>,
pub fn unique_saturated_into(self) -> T
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,