Enum sp_runtime::DigestItem[][src]

pub enum DigestItem<Hash> {
    ChangesTrieRoot(Hash),
    PreRuntime(ConsensusEngineIdVec<u8>),
    Consensus(ConsensusEngineIdVec<u8>),
    Seal(ConsensusEngineIdVec<u8>),
    ChangesTrieSignal(ChangesTrieSignal),
    Other(Vec<u8>),
}

Digest item that is able to encode/decode ‘system’ digest items and provide opaque access to other items.

Variants

ChangesTrieRoot(Hash)

System digest item that contains the root of changes trie at given block. It is created for every block iff runtime supports changes trie creation.

PreRuntime(ConsensusEngineIdVec<u8>)

A pre-runtime digest.

These are messages from the consensus engine to the runtime, although the consensus engine can (and should) read them itself to avoid code and state duplication. It is erroneous for a runtime to produce these, but this is not (yet) checked.

NOTE: the runtime is not allowed to panic or fail in an on_initialize call if an expected PreRuntime digest is not present. It is the responsibility of a external block verifier to check this. Runtime API calls will initialize the block without pre-runtime digests, so initialization cannot fail when they are missing.

Consensus(ConsensusEngineIdVec<u8>)

A message from the runtime to the consensus engine. This should never be generated by the native code of any consensus engine, but this is not checked (yet).

Seal(ConsensusEngineIdVec<u8>)

Put a Seal on it. This is only used by native code, and is never seen by runtimes.

ChangesTrieSignal(ChangesTrieSignal)

Digest item that contains signal from changes tries manager to the native code.

Other(Vec<u8>)

Some other thing. Unsupported and experimental.

Implementations

impl<Hash> DigestItem<Hash>[src]

pub fn dref<'a>(&'a self) -> DigestItemRef<'a, Hash>[src]

Returns a ‘referencing view’ for this digest item.

pub fn as_changes_trie_root(&self) -> Option<&Hash>[src]

Returns Some if the entry is the ChangesTrieRoot entry.

pub fn as_pre_runtime(&self) -> Option<(ConsensusEngineId, &[u8])>[src]

Returns Some if this entry is the PreRuntime entry.

pub fn as_consensus(&self) -> Option<(ConsensusEngineId, &[u8])>[src]

Returns Some if this entry is the Consensus entry.

pub fn as_seal(&self) -> Option<(ConsensusEngineId, &[u8])>[src]

Returns Some if this entry is the Seal entry.

pub fn as_changes_trie_signal(&self) -> Option<&ChangesTrieSignal>[src]

Returns Some if the entry is the ChangesTrieSignal entry.

pub fn as_other(&self) -> Option<&[u8]>[src]

Returns Some if self is a DigestItem::Other.

pub fn try_as_raw(&self, id: OpaqueDigestItemId<'_>) -> Option<&[u8]>[src]

Returns the opaque data contained in the item if Some if this entry has the id given.

pub fn try_to<T: Decode>(&self, id: OpaqueDigestItemId<'_>) -> Option<T>[src]

Returns the data contained in the item if Some if this entry has the id given, decoded to the type provided T.

Trait Implementations

impl<H: PartialEq + Eq + Debug> CheckEqual for DigestItem<H> where
    H: Encode
[src]

impl<Hash: Clone> Clone for DigestItem<Hash>[src]

impl<Hash> Debug for DigestItem<Hash> where
    Hash: Debug
[src]

impl<Hash: Decode> Decode for DigestItem<Hash>[src]

impl<'a, Hash: Decode> Deserialize<'a> for DigestItem<Hash>[src]

impl<Hash: Encode> Encode for DigestItem<Hash>[src]

impl<Hash: Encode> EncodeLike<DigestItem<Hash>> for DigestItem<Hash>[src]

impl<Hash: Eq> Eq for DigestItem<Hash>[src]

impl<Hash> MallocSizeOf for DigestItem<Hash> where
    Hash: MallocSizeOf
[src]

impl<Hash: PartialEq> PartialEq<DigestItem<Hash>> for DigestItem<Hash>[src]

impl<Hash: Encode> Serialize for DigestItem<Hash>[src]

impl<Hash> StructuralEq for DigestItem<Hash>[src]

impl<Hash> StructuralPartialEq for DigestItem<Hash>[src]

Auto Trait Implementations

impl<Hash> RefUnwindSafe for DigestItem<Hash> where
    Hash: RefUnwindSafe

impl<Hash> Send for DigestItem<Hash> where
    Hash: Send

impl<Hash> Sync for DigestItem<Hash> where
    Hash: Sync

impl<Hash> Unpin for DigestItem<Hash> where
    Hash: Unpin

impl<Hash> UnwindSafe for DigestItem<Hash> where
    Hash: 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<S> Codec for S where
    S: Encode + Decode
[src]

impl<T> DecodeAll for T where
    T: Decode
[src]

impl<T> DecodeLimit for T where
    T: Decode
[src]

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
[src]

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

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

impl<T> EncodeLike<Arc<T>> for T where
    T: Encode
[src]

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

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

impl<T> EncodeLike<Rc<T>> for T where
    T: Encode
[src]

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

impl<S> FullCodec for S where
    S: Decode + FullEncode
[src]

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

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<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
[src]

impl<T> MallocSizeOfExt for T where
    T: MallocSizeOf
[src]

impl<T> MaybeDebug for T where
    T: Debug
[src]

impl<T> MaybeDebug for T where
    T: Debug
[src]

impl<T> MaybeMallocSizeOf for T where
    T: MallocSizeOf
[src]

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> 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> 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>, 
[src]