reth_primitives_traits::block

Trait Block

Source
pub trait Block:
    Send
    + Sync
    + Unpin
    + Clone
    + Default
    + Debug
    + PartialEq
    + Eq
    + InMemorySize
    + MaybeSerde
    + Encodable
    + Decodable {
    type Header: BlockHeader;
    type Body: BlockBody<OmmerHeader = Self::Header>;

    // Required methods
    fn new(header: Self::Header, body: Self::Body) -> Self;
    fn header(&self) -> &Self::Header;
    fn body(&self) -> &Self::Body;
    fn split(self) -> (Self::Header, Self::Body);
}
Expand description

Abstraction of block data type.

Required Associated Types§

Source

type Header: BlockHeader

Header part of the block.

Source

type Body: BlockBody<OmmerHeader = Self::Header>

The block’s body contains the transactions in the block.

Required Methods§

Source

fn new(header: Self::Header, body: Self::Body) -> Self

Create new block instance.

Source

fn header(&self) -> &Self::Header

Returns reference to block header.

Source

fn body(&self) -> &Self::Body

Returns reference to block body.

Source

fn split(self) -> (Self::Header, Self::Body)

Splits the block into its header and body.

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.

Implementations on Foreign Types§

Source§

impl<T> Block for Block<T>

Source§

type Header = Header

Source§

type Body = BlockBody<T>

Source§

fn new(header: Self::Header, body: Self::Body) -> Self

Source§

fn header(&self) -> &Self::Header

Source§

fn body(&self) -> &Self::Body

Source§

fn split(self) -> (Self::Header, Self::Body)

Implementors§