Enum sp_runtime::generic::DigestItemRef [−][src]
pub enum DigestItemRef<'a, Hash: 'a> { ChangesTrieRoot(&'a Hash), PreRuntime(&'a ConsensusEngineId, &'a Vec<u8>), Consensus(&'a ConsensusEngineId, &'a Vec<u8>), Seal(&'a ConsensusEngineId, &'a Vec<u8>), ChangesTrieSignal(&'a ChangesTrieSignal), Other(&'a Vec<u8>), }
Expand description
A ‘referencing view’ for digest item. Does not own its contents. Used by final runtime implementations for encoding/decoding its log items.
Variants
ChangesTrieRoot(&'a Hash)
Reference to DigestItem::ChangesTrieRoot
.
PreRuntime(&'a ConsensusEngineId, &'a 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.
Consensus(&'a ConsensusEngineId, &'a 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(&'a ConsensusEngineId, &'a Vec<u8>)
Put a Seal on it. This is only used by native code, and is never seen by runtimes.
ChangesTrieSignal(&'a ChangesTrieSignal)
Digest item that contains signal from changes tries manager to the native code.
Any ‘non-system’ digest item, opaque to the native code.
Implementations
Cast this digest item into ChangesTrieRoot
.
Cast this digest item into PreRuntime
Cast this digest item into Consensus
Cast this digest item into ChangesTrieSignal
.
Try to match this digest item to the given opaque item identifier; if it matches, then return the opaque data it contains.
Try to match this digest item to the given opaque item identifier; if it matches, then try to cast to the given data type; if that works, return it.
Try to match this to a Self::Seal
, check id
matches and decode it.
Returns None
if this isn’t a seal item, the id
doesn’t match or when the decoding fails.
Try to match this to a Self::Consensus
, check id
matches and decode it.
Returns None
if this isn’t a consensus item, the id
doesn’t match or
when the decoding fails.
Try to match this to a Self::PreRuntime
, check id
matches and decode it.
Returns None
if this isn’t a pre-runtime item, the id
doesn’t match or
when the decoding fails.
Trait Implementations
Convert self to a slice and append it to the destination.
fn 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.
fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
Calculates the encoded size. Read more
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl<'a, Hash> RefUnwindSafe for DigestItemRef<'a, Hash> where
Hash: RefUnwindSafe,
impl<'a, Hash> Send for DigestItemRef<'a, Hash> where
Hash: Sync,
impl<'a, Hash> Sync for DigestItemRef<'a, Hash> where
Hash: Sync,
impl<'a, Hash> Unpin for DigestItemRef<'a, Hash>
impl<'a, Hash> UnwindSafe for DigestItemRef<'a, Hash> where
Hash: RefUnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
impl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>
impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>
impl<R> Read for Box<R, Global> where
R: Read + ?Sized, impl<W> Write for Box<W, Global> where
W: Write + ?Sized, impl<F, A> Future for Box<F, A> where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A> where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
Convert Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read more
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
type Output = T
type Output = T
Should always be Self
The counterpart to unchecked_from
.
Consume self to return an equivalent value of T
.
pub fn vzip(self) -> V
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<Rc<T>> for T where
T: Encode,
impl<T> MaybeDebug for T where
T: Debug,
impl<T> MaybeDebug for T where
T: Debug,