Enum sp_runtime::generic::DigestItem
source · [−]pub enum DigestItem<Hash> {
ChangesTrieRoot(Hash),
PreRuntime(ConsensusEngineId, Vec<u8>),
Consensus(ConsensusEngineId, Vec<u8>),
Seal(ConsensusEngineId, Vec<u8>),
ChangesTrieSignal(ChangesTrieSignal),
Other(Vec<u8>),
}
Expand description
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(ConsensusEngineId, Vec<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(ConsensusEngineId, Vec<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(ConsensusEngineId, Vec<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
sourceimpl<Hash> DigestItem<Hash>
impl<Hash> DigestItem<Hash>
sourcepub fn dref<'a>(&'a self) -> DigestItemRef<'a, Hash>
pub fn dref<'a>(&'a self) -> DigestItemRef<'a, Hash>
Returns a ‘referencing view’ for this digest item.
sourcepub fn as_changes_trie_root(&self) -> Option<&Hash>
pub fn as_changes_trie_root(&self) -> Option<&Hash>
Returns Some
if the entry is the ChangesTrieRoot
entry.
sourcepub fn as_pre_runtime(&self) -> Option<(ConsensusEngineId, &[u8])>
pub fn as_pre_runtime(&self) -> Option<(ConsensusEngineId, &[u8])>
Returns Some
if this entry is the PreRuntime
entry.
sourcepub fn as_consensus(&self) -> Option<(ConsensusEngineId, &[u8])>
pub fn as_consensus(&self) -> Option<(ConsensusEngineId, &[u8])>
Returns Some
if this entry is the Consensus
entry.
sourcepub fn as_seal(&self) -> Option<(ConsensusEngineId, &[u8])>
pub fn as_seal(&self) -> Option<(ConsensusEngineId, &[u8])>
Returns Some
if this entry is the Seal
entry.
sourcepub fn as_changes_trie_signal(&self) -> Option<&ChangesTrieSignal>
pub fn as_changes_trie_signal(&self) -> Option<&ChangesTrieSignal>
Returns Some
if the entry is the ChangesTrieSignal
entry.
sourcepub fn try_as_raw(&self, id: OpaqueDigestItemId<'_>) -> Option<&[u8]>
pub fn try_as_raw(&self, id: OpaqueDigestItemId<'_>) -> Option<&[u8]>
Returns the opaque data contained in the item if Some
if this entry has the id given.
sourcepub fn try_to<T: Decode>(&self, id: OpaqueDigestItemId<'_>) -> Option<T>
pub fn try_to<T: Decode>(&self, id: OpaqueDigestItemId<'_>) -> Option<T>
Returns the data contained in the item if Some
if this entry has the id given, decoded
to the type provided T
.
Trait Implementations
sourceimpl<H: PartialEq + Eq + Debug> CheckEqual for DigestItem<H> where
H: Encode,
impl<H: PartialEq + Eq + Debug> CheckEqual for DigestItem<H> where
H: Encode,
sourcefn check_equal(&self, other: &Self)
fn check_equal(&self, other: &Self)
Perform the equality check.
sourceimpl<Hash: Clone> Clone for DigestItem<Hash>
impl<Hash: Clone> Clone for DigestItem<Hash>
sourcefn clone(&self) -> DigestItem<Hash>
fn clone(&self) -> DigestItem<Hash>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<Hash> Debug for DigestItem<Hash> where
Hash: Debug,
impl<Hash> Debug for DigestItem<Hash> where
Hash: Debug,
sourceimpl<Hash: Decode> Decode for DigestItem<Hash>
impl<Hash: Decode> Decode for DigestItem<Hash>
sourcefn decode<I: Input>(input: &mut I) -> Result<Self, Error>
fn decode<I: Input>(input: &mut I) -> Result<Self, Error>
Attempt to deserialise the value from input.
sourcefn skip<I>(input: &mut I) -> Result<(), Error> where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error> where
I: Input,
Attempt to skip the encoded value from input. Read more
sourcefn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
Returns the fixed encoded size of the type. Read more
sourceimpl<'a, Hash: Decode> Deserialize<'a> for DigestItem<Hash>
impl<'a, Hash: Decode> Deserialize<'a> for DigestItem<Hash>
sourcefn deserialize<D>(de: D) -> Result<Self, D::Error> where
D: Deserializer<'a>,
fn deserialize<D>(de: D) -> Result<Self, D::Error> where
D: Deserializer<'a>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl<Hash: Encode> Encode for DigestItem<Hash>
impl<Hash: Encode> Encode for DigestItem<Hash>
sourcefn encode(&self) -> Vec<u8>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
fn encode(&self) -> Vec<u8>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Convert self to an owned vector.
sourcefn size_hint(&self) -> usize
fn size_hint(&self) -> usize
If possible give a hint of expected size of the encoding. Read more
sourcefn encode_to<T>(&self, dest: &mut T) where
T: Output + ?Sized,
fn encode_to<T>(&self, dest: &mut T) where
T: Output + ?Sized,
Convert self to a slice and append it to the destination.
sourcefn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> R where
F: FnOnce(&[u8]) -> R,
Convert self to a slice and then invoke the given closure with it.
sourcefn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
sourceimpl<Hash> MallocSizeOf for DigestItem<Hash> where
Hash: MallocSizeOf,
impl<Hash> MallocSizeOf for DigestItem<Hash> where
Hash: MallocSizeOf,
sourcefn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Measure the heap usage of all descendant heap-allocated structures, but
not the space taken up by the value itself.
If T::size_of
is a constant, consider implementing constant_size
as well. Read more
sourcefn constant_size() -> Option<usize>
fn constant_size() -> Option<usize>
Used to optimize MallocSizeOf
implementation for collections
like Vec
and HashMap
to avoid iterating over them unnecessarily.
The Self: Sized
bound is for object safety. Read more
sourceimpl<Hash: PartialEq> PartialEq<DigestItem<Hash>> for DigestItem<Hash>
impl<Hash: PartialEq> PartialEq<DigestItem<Hash>> for DigestItem<Hash>
sourcefn eq(&self, other: &DigestItem<Hash>) -> bool
fn eq(&self, other: &DigestItem<Hash>) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &DigestItem<Hash>) -> bool
fn ne(&self, other: &DigestItem<Hash>) -> bool
This method tests for !=
.
sourceimpl<Hash: Encode> Serialize for DigestItem<Hash>
impl<Hash: Encode> Serialize for DigestItem<Hash>
impl<Hash: Encode> EncodeLike<DigestItem<Hash>> for DigestItem<Hash>
impl<Hash: Eq> Eq for DigestItem<Hash>
impl<Hash> StructuralEq for DigestItem<Hash>
impl<Hash> StructuralPartialEq for DigestItem<Hash>
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedConversion for T
impl<T> CheckedConversion for T
sourcefn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self> where
Self: TryFrom<T>,
Convert from a value of T
into an equivalent instance of Option<Self>
. Read more
sourcefn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T> where
Self: TryInto<T>,
Consume self to return Some
equivalent value of Option<T>
. Read more
sourceimpl<T> DecodeLimit for T where
T: Decode,
impl<T> DecodeLimit for T where
T: Decode,
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for T where
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
sourceimpl<T> MallocSizeOfExt for T where
T: MallocSizeOf,
impl<T> MallocSizeOfExt for T where
T: MallocSizeOf,
sourcefn malloc_size_of(&self) -> usize
fn malloc_size_of(&self) -> usize
Method to launch a heapsize measurement with a fresh state. Read more
sourceimpl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
sourcefn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Self where
Self: UniqueSaturatedFrom<T>,
Convert from a value of T
into an equivalent instance of Self
. Read more
sourcefn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> T where
Self: UniqueSaturatedInto<T>,
Consume self to return an equivalent value of T
. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more
sourceimpl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for S where
T: UncheckedFrom<S>,
sourcepub fn unchecked_into(self) -> T
pub fn unchecked_into(self) -> T
The counterpart to unchecked_from
.
sourceimpl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for S where
T: Bounded,
S: TryInto<T>,
sourcepub fn unique_saturated_into(self) -> T
pub fn unique_saturated_into(self) -> T
Consume self to return an equivalent value of T
.