pub trait BlockProducer: Send {
// Required method
fn produce_block<SealBlock>(
&mut self,
claimed_slot: ClaimedSlot,
best_beacon_chain_header: &BeaconChainHeader<'_>,
seal_block: SealBlock,
) -> impl Future<Output = ()> + Send
where SealBlock: AsyncFnOnce<(Blake3Hash,), Output = Option<OwnedBlockHeaderSeal>, CallOnceFuture: Send> + Send;
}Expand description
Block builder interface
Required Methods§
Sourcefn produce_block<SealBlock>(
&mut self,
claimed_slot: ClaimedSlot,
best_beacon_chain_header: &BeaconChainHeader<'_>,
seal_block: SealBlock,
) -> impl Future<Output = ()> + Sendwhere
SealBlock: AsyncFnOnce<(Blake3Hash,), Output = Option<OwnedBlockHeaderSeal>, CallOnceFuture: Send> + Send,
fn produce_block<SealBlock>(
&mut self,
claimed_slot: ClaimedSlot,
best_beacon_chain_header: &BeaconChainHeader<'_>,
seal_block: SealBlock,
) -> impl Future<Output = ()> + Sendwhere
SealBlock: AsyncFnOnce<(Blake3Hash,), Output = Option<OwnedBlockHeaderSeal>, CallOnceFuture: Send> + Send,
Produce (build and import) a new block for the claimed slot
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.