Trait Block
pub trait Block:
HeaderProvider<HeaderT = Self::Header>
+ Clone
+ Send
+ Sync
+ Codec
+ Eq
+ MaybeSerialize
+ Debug
+ 'static {
type Extrinsic: Member + Codec + Extrinsic + MaybeSerialize;
type Header: Header<Hash = Self::Hash> + MaybeSerializeDeserialize;
type Hash: HashOutput;
// Required methods
fn header(&self) -> &Self::Header;
fn extrinsics(&self) -> &[Self::Extrinsic];
fn deconstruct(self) -> (Self::Header, Vec<Self::Extrinsic>);
fn new(header: Self::Header, extrinsics: Vec<Self::Extrinsic>) -> Self;
fn encode_from(
header: &Self::Header,
extrinsics: &[Self::Extrinsic],
) -> Vec<u8> ⓘ;
// Provided method
fn hash(&self) -> Self::Hash { ... }
}
Expand description
Something which fulfills the abstract idea of a Substrate block. It has types for
Extrinsic
pieces of information as well as a Header
.
You can get an iterator over each of the extrinsics
and retrieve the header
.
Required Associated Types§
type Extrinsic: Member + Codec + Extrinsic + MaybeSerialize
type Extrinsic: Member + Codec + Extrinsic + MaybeSerialize
Type for extrinsics.
type Header: Header<Hash = Self::Hash> + MaybeSerializeDeserialize
type Header: Header<Hash = Self::Hash> + MaybeSerializeDeserialize
Header type.
type Hash: HashOutput
type Hash: HashOutput
Block hash type.
Required Methods§
fn extrinsics(&self) -> &[Self::Extrinsic]
fn extrinsics(&self) -> &[Self::Extrinsic]
Returns a reference to the list of extrinsics.
fn deconstruct(self) -> (Self::Header, Vec<Self::Extrinsic>)
fn deconstruct(self) -> (Self::Header, Vec<Self::Extrinsic>)
Split the block into header and list of extrinsics.
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.