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

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> Instrument 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
    T: From<Outer>,
    Outer: AsRef<T> + AsMut<T> + From<T>, 
[src]

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]

impl<T> Pointable for T[src]

type Init = T

The type for initializers.

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
    T: Bounded,
    S: TryInto<T>, 
[src]

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