pub trait BlockAssembler<F>where
F: BlockExecutorFactory,{
type Block: Block;
// Required method
fn assemble_block(
&self,
input: BlockAssemblerInput<'_, '_, F, <Self::Block as Block>::Header>,
) -> Result<Self::Block, BlockExecutionError>;
}Available on crate feature
evm only.Expand description
A type that assembles a block from execution output.
Required Associated Types§
Required Methods§
Sourcefn assemble_block(
&self,
input: BlockAssemblerInput<'_, '_, F, <Self::Block as Block>::Header>,
) -> Result<Self::Block, BlockExecutionError>
fn assemble_block( &self, input: BlockAssemblerInput<'_, '_, F, <Self::Block as Block>::Header>, ) -> Result<Self::Block, BlockExecutionError>
Builds a block. see BlockAssemblerInput documentation for more details.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<'a, F, T> BlockAssembler<F> for &'a T
impl<'a, F, T> BlockAssembler<F> for &'a T
type Block = <T as BlockAssembler<F>>::Block
fn assemble_block( &self, input: BlockAssemblerInput<'_, '_, F, <<&'a T as BlockAssembler<F>>::Block as Block>::Header>, ) -> Result<<&'a T as BlockAssembler<F>>::Block, BlockExecutionError>
Source§impl<F, T> BlockAssembler<F> for Arc<T>
impl<F, T> BlockAssembler<F> for Arc<T>
type Block = <T as BlockAssembler<F>>::Block
fn assemble_block( &self, input: BlockAssemblerInput<'_, '_, F, <<Arc<T> as BlockAssembler<F>>::Block as Block>::Header>, ) -> Result<<Arc<T> as BlockAssembler<F>>::Block, BlockExecutionError>
Implementors§
Source§impl<F, ChainSpec> BlockAssembler<F> for EthBlockAssembler<ChainSpec>where
F: for<'a> BlockExecutorFactory<ExecutionCtx<'a> = EthBlockExecutionCtx<'a>> + 'static,
<F as BlockExecutorFactory>::Transaction: for<'a> SignedTransaction,
<F as BlockExecutorFactory>::Receipt: for<'a> Receipt,
ChainSpec: EthChainSpec + EthereumHardforks + 'static,
Available on crate feature std only.
impl<F, ChainSpec> BlockAssembler<F> for EthBlockAssembler<ChainSpec>where
F: for<'a> BlockExecutorFactory<ExecutionCtx<'a> = EthBlockExecutionCtx<'a>> + 'static,
<F as BlockExecutorFactory>::Transaction: for<'a> SignedTransaction,
<F as BlockExecutorFactory>::Receipt: for<'a> Receipt,
ChainSpec: EthChainSpec + EthereumHardforks + 'static,
Available on crate feature
std only.