pub trait NetworkPrimitives:
Send
+ Sync
+ Unpin
+ Clone
+ Debug
+ PartialEq
+ Eq
+ 'static {
type BlockHeader: BlockHeader + Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static;
type BlockBody: Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static;
type Block: Block<Header = Self::BlockHeader, Body = Self::BlockBody> + Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static;
type BroadcastedTransaction: Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static;
type PooledTransaction: Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static;
type Receipt: Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static;
}
Expand description
Abstraction over primitive types which might appear in network messages. See
crate::EthMessage
for more context.
Required Associated Types§
Sourcetype BlockHeader: BlockHeader + Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static
type BlockHeader: BlockHeader + Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static
The block header type.
Sourcetype BlockBody: Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static
type BlockBody: Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static
The block body type.
Sourcetype Block: Block<Header = Self::BlockHeader, Body = Self::BlockBody> + Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static
type Block: Block<Header = Self::BlockHeader, Body = Self::BlockBody> + Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static
Full block type.
Sourcetype BroadcastedTransaction: Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static
type BroadcastedTransaction: Encodable + Decodable + Send + Sync + Unpin + Clone + Debug + PartialEq + Eq + 'static
The transaction type which peers announce in Transactions
messages. It is different from
PooledTransactions
to account for Ethereum case where EIP-4844 transactions are not being
announced and can only be explicitly requested from peers.
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.