[][src]Struct frame_support::traits::StorageMapShim

pub struct StorageMapShim<S, Created, Removed, K, T>(_);

A shim for placing around a storage item in order to use it as a StoredValue. Ideally this wouldn't be needed as StorageValues should blanket implement StoredValues, 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]

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

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

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

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

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

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> CheckedConversion for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IsType<T> for T[src]

impl<T, Outer> IsWrappedBy<Outer> for T where
    Outer: AsRef<T> + AsMut<T> + From<T>,
    T: From<Outer>, 
[src]

fn from_ref(outer: &Outer) -> &T[src]

Get a reference to the inner from the outer.

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]

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> SaturatedConversion for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<S, T> UncheckedInto<T> for S where
    T: UncheckedFrom<S>, 
[src]

impl<T, S> UniqueSaturatedInto<T> for S where
    S: TryInto<T>,
    T: Bounded
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 
[src]