Struct sp_runtime::generic::Header [−][src]
pub struct Header<Number: Copy + Into<U256> + TryFrom<U256>, Hash: HashT> { pub parent_hash: Hash::Output, pub number: Number, pub state_root: Hash::Output, pub extrinsics_root: Hash::Output, pub digest: Digest<Hash::Output>, }
Expand description
Abstraction over a block header for a substrate chain.
Fields
parent_hash: Hash::OutputThe parent hash.
number: NumberThe block number.
state_root: Hash::OutputThe state trie merkle root
extrinsics_root: Hash::OutputThe merkle root of the extrinsics.
digest: Digest<Hash::Output>A chain-specific digest of data useful for light clients or referencing auxiliary data.
Implementations
impl<Number, Hash> Header<Number, Hash> where
Number: Member + Hash + Copy + MaybeDisplay + AtLeast32BitUnsigned + Codec + Into<U256> + TryFrom<U256>,
Hash: HashT,
Hash::Output: Default + Hash + Copy + Member + MaybeDisplay + SimpleBitOps + Codec,
impl<Number, Hash> Header<Number, Hash> where
Number: Member + Hash + Copy + MaybeDisplay + AtLeast32BitUnsigned + Codec + Into<U256> + TryFrom<U256>,
Hash: HashT,
Hash::Output: Default + Hash + Copy + Member + MaybeDisplay + SimpleBitOps + Codec, A new header with the given number and default hash for all other fields.
Trait Implementations
impl<Number: Copy + Into<U256> + TryFrom<U256>, Hash: HashT> Decode for Header<Number, Hash> where
Hash::Output: Decode,
Hash::Output: Decode,
Hash::Output: Decode,
Hash::Output: Decode,
Hash::Output: Decode,
Hash::Output: Decode,
Digest<Hash::Output>: Decode,
Digest<Hash::Output>: Decode,
Number: HasCompact,
impl<Number: Copy + Into<U256> + TryFrom<U256>, Hash: HashT> Decode for Header<Number, Hash> where
Hash::Output: Decode,
Hash::Output: Decode,
Hash::Output: Decode,
Hash::Output: Decode,
Hash::Output: Decode,
Hash::Output: Decode,
Digest<Hash::Output>: Decode,
Digest<Hash::Output>: Decode,
Number: HasCompact, Attempt to deserialise the value from input.
Attempt to skip the encoded value from input. Read more
fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>Returns the fixed encoded size of the type. Read more
impl<'de, Number: Copy + Into<U256> + TryFrom<U256>, Hash: HashT> Deserialize<'de> for Header<Number, Hash> where
Hash::Output: Deserialize<'de>,
Hash::Output: Deserialize<'de>,
Hash::Output: Deserialize<'de>,
impl<'de, Number: Copy + Into<U256> + TryFrom<U256>, Hash: HashT> Deserialize<'de> for Header<Number, Hash> where
Hash::Output: Deserialize<'de>,
Hash::Output: Deserialize<'de>,
Hash::Output: Deserialize<'de>, fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, Deserialize this value from the given Serde deserializer. Read more
impl<Number: Copy + Into<U256> + TryFrom<U256>, Hash: HashT> Encode for Header<Number, Hash> where
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Digest<Hash::Output>: Encode,
Digest<Hash::Output>: Encode,
Number: HasCompact,
impl<Number: Copy + Into<U256> + TryFrom<U256>, Hash: HashT> Encode for Header<Number, Hash> where
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Digest<Hash::Output>: Encode,
Digest<Hash::Output>: Encode,
Number: HasCompact, 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) -> usizeCalculates the encoded size. Read more
impl<Number, Hash> Header for Header<Number, Hash> where
Number: Member + MaybeSerializeDeserialize + Debug + Hash + MaybeDisplay + AtLeast32BitUnsigned + Codec + Copy + Into<U256> + TryFrom<U256> + FromStr + MaybeMallocSizeOf,
Hash: HashT,
Hash::Output: Default + Hash + Copy + Member + Ord + MaybeSerialize + Debug + MaybeDisplay + SimpleBitOps + Codec + MaybeMallocSizeOf,
impl<Number, Hash> Header for Header<Number, Hash> where
Number: Member + MaybeSerializeDeserialize + Debug + Hash + MaybeDisplay + AtLeast32BitUnsigned + Codec + Copy + Into<U256> + TryFrom<U256> + FromStr + MaybeMallocSizeOf,
Hash: HashT,
Hash::Output: Default + Hash + Copy + Member + Ord + MaybeSerialize + Debug + MaybeDisplay + SimpleBitOps + Codec + MaybeMallocSizeOf, type Number = Number
type Number = NumberHeader number.
type Hashing = Hash
type Hashing = HashHashing algorithm
Sets the header number.
Returns a reference to the extrinsics root.
Sets the extrinsic root.
Returns a reference to the state root.
Sets the state root.
Returns a reference to the parent hash.
Sets the parent hash.
Get a mutable reference to the digest.
Creates new header.
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
fn 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
impl<Number: Copy + Into<U256> + TryFrom<U256>, Hash: HashT> EncodeLike<Header<Number, Hash>> for Header<Number, Hash> where
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Hash::Output: Encode,
Digest<Hash::Output>: Encode,
Digest<Hash::Output>: Encode,
Number: HasCompact, impl<Number: Eq + Copy + Into<U256> + TryFrom<U256>, Hash: Eq + HashT> Eq for Header<Number, Hash> where
Hash::Output: Eq,
Hash::Output: Eq,
Hash::Output: Eq,
Hash::Output: Eq, Auto Trait Implementations
impl<Number, Hash> RefUnwindSafe for Header<Number, Hash> where
Number: RefUnwindSafe,
<Hash as Hash>::Output: RefUnwindSafe, impl<Number, Hash> Unpin for Header<Number, Hash> where
Number: Unpin,
<Hash as Hash>::Output: Unpin, impl<Number, Hash> UnwindSafe for Header<Number, Hash> where
Number: UnwindSafe,
<Hash as Hash>::Output: UnwindSafe, 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
fn malloc_size_of(&self) -> usize
fn malloc_size_of(&self) -> usizeMethod to launch a heapsize measurement with a fresh state. Read more
type Output = T
type Output = TShould always be Self
The counterpart to unchecked_from.
Consume self to return an equivalent value of T.
pub fn vzip(self) -> Vimpl<'_, '_, 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,