[][src]Enum frame_support::weights::DispatchClass

pub enum DispatchClass {
    Normal,
    Operational,
    Mandatory,
}

A generalized group of dispatch types.

NOTE whenever upgrading the enum make sure to also update DispatchClass::all and DispatchClass::non_mandatory helper functions.

Variants

Normal

A normal dispatch.

Operational

An operational dispatch.

Mandatory

A mandatory dispatch. These kinds of dispatch are always included regardless of their weight, therefore it is critical that they are separately validated to ensure that a malicious validator cannot craft a valid but impossibly heavy block. Usually this just means ensuring that the extrinsic can only be included once and that it is always very light.

Do NOT use it for extrinsics that can be heavy.

The only real use case for this is inherent extrinsics that are required to execute in a block for the block to be valid, and it solves the issue in the case that the block initialization is sufficiently heavy to mean that those inherents do not fit into the block. Essentially, we assume that in these exceptional circumstances, it is better to allow an overweight block to be created than to not allow any block at all to be created.

Implementations

impl DispatchClass[src]

pub fn all() -> &'static [DispatchClass]

Notable traits for &'_ mut [u8]

impl<'_> Write for &'_ mut [u8]impl<'_> Read for &'_ [u8]
[src]

Returns an array containing all dispatch classes.

pub fn non_mandatory() -> &'static [DispatchClass]

Notable traits for &'_ mut [u8]

impl<'_> Write for &'_ mut [u8]impl<'_> Read for &'_ [u8]
[src]

Returns an array of all dispatch classes except Mandatory.

Trait Implementations

impl Clone for DispatchClass[src]

impl Copy for DispatchClass[src]

impl Debug for DispatchClass[src]

impl Decode for DispatchClass[src]

impl Default for DispatchClass[src]

impl<'de> Deserialize<'de> for DispatchClass[src]

impl Encode for DispatchClass[src]

impl EncodeLike<DispatchClass> for DispatchClass[src]

impl Eq for DispatchClass[src]

impl OneOrMany<DispatchClass> for DispatchClass[src]

type Iter = Once<DispatchClass>

The iterator type.

impl<'a> OneOrMany<DispatchClass> for &'a [DispatchClass][src]

type Iter = Cloned<Iter<'a, DispatchClass>>

The iterator type.

impl PartialEq<DispatchClass> for DispatchClass[src]

impl Serialize for DispatchClass[src]

impl StructuralEq for DispatchClass[src]

impl StructuralPartialEq for DispatchClass[src]

Auto Trait Implementations

impl RefUnwindSafe for DispatchClass[src]

impl Send for DispatchClass[src]

impl Sync for DispatchClass[src]

impl Unpin for DispatchClass[src]

impl UnwindSafe for DispatchClass[src]

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> Clear for T where
    T: PartialEq<T> + Eq + Default
[src]

impl<S> Codec for S where
    S: Encode + Decode

impl<T> DecodeAll for T where
    T: Decode

impl<T> DecodeLimit for T where
    T: Decode

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<T> DynClone for T where
    T: Clone
[src]

impl<'_, '_, T> EncodeLike<&'_ &'_ T> for T where
    T: Encode

impl<'_, T> EncodeLike<&'_ T> for T where
    T: Encode

impl<'_, T> EncodeLike<&'_ mut T> for T where
    T: Encode

impl<T> EncodeLike<Arc<T>> for T where
    T: Encode

impl<T> EncodeLike<Box<T, Global>> for T where
    T: Encode

impl<'a, T> EncodeLike<Cow<'a, T>> for T where
    T: Encode + ToOwned

impl<T> EncodeLike<Rc<T>> for T where
    T: Encode

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

impl<S> FullCodec for S where
    S: Decode + FullEncode, 

impl<S> FullEncode for S where
    S: Encode + EncodeLike<S>, 

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> KeyedVec for T where
    T: Codec

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeDebug for T where
    T: Debug

impl<T> MaybeRefUnwindSafe for T where
    T: RefUnwindSafe
[src]

impl<T> MaybeSerialize for T where
    T: Serialize
[src]

impl<T> MaybeSerializeDeserialize for T where
    T: DeserializeOwned + Serialize
[src]

impl<T> Member for T where
    T: 'static + Clone + PartialEq<T> + Eq + Send + Sync + Debug
[src]

impl<T> Parameter for T where
    T: Codec + EncodeLike<T> + Clone + Eq + Debug
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SaturatedConversion for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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>,