pub trait Block:
Clone
+ Send
+ Sync
+ Codec
+ Eq
+ MaybeSerialize
+ Debug
+ MaybeMallocSizeOf
+ 'static {
type Extrinsic: Member + Codec + Extrinsic + MaybeSerialize + MaybeMallocSizeOf;
type Header: Header<Hash = Self::Hash> + MaybeMallocSizeOf;
type Hash: Member + MaybeSerializeDeserialize + Debug + Hash + Ord + Copy + MaybeDisplay + Default + SimpleBitOps + Codec + AsRef<[u8]> + AsMut<[u8]> + MaybeMallocSizeOf;
// 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 Tetcore 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§
Sourcetype Extrinsic: Member + Codec + Extrinsic + MaybeSerialize + MaybeMallocSizeOf
type Extrinsic: Member + Codec + Extrinsic + MaybeSerialize + MaybeMallocSizeOf
Type for extrinsics.
Sourcetype Header: Header<Hash = Self::Hash> + MaybeMallocSizeOf
type Header: Header<Hash = Self::Hash> + MaybeMallocSizeOf
Header type.
Sourcetype Hash: Member + MaybeSerializeDeserialize + Debug + Hash + Ord + Copy + MaybeDisplay + Default + SimpleBitOps + Codec + AsRef<[u8]> + AsMut<[u8]> + MaybeMallocSizeOf
type Hash: Member + MaybeSerializeDeserialize + Debug + Hash + Ord + Copy + MaybeDisplay + Default + SimpleBitOps + Codec + AsRef<[u8]> + AsMut<[u8]> + MaybeMallocSizeOf
Block hash type.
Required Methods§
Sourcefn extrinsics(&self) -> &[Self::Extrinsic]
fn extrinsics(&self) -> &[Self::Extrinsic]
Returns a reference to the list of extrinsics.
Sourcefn 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.