pub trait NodeComponentsBuilder<Node: FullNodeTypes>: Send {
type Components: NodeComponents<Node, PayloadBuilder = PayloadBuilderHandle<<Node::Types as NodeTypesWithEngine>::Engine>>;
// Required method
fn build_components(
self,
ctx: &BuilderContext<Node>,
) -> impl Future<Output = Result<Self::Components>> + Send;
}
Expand description
A type that configures all the customizable components of the node and knows how to build them.
Implementers of this trait are responsible for building all the components of the node: See
NodeComponents
.
The ComponentsBuilder
is a generic, general purpose implementation of this trait that can be
used to customize certain components of the node using the builder pattern and defaults, e.g.
Ethereum and Optimism.
A type that’s responsible for building the components of the node.
Required Associated Types§
Sourcetype Components: NodeComponents<Node, PayloadBuilder = PayloadBuilderHandle<<Node::Types as NodeTypesWithEngine>::Engine>>
type Components: NodeComponents<Node, PayloadBuilder = PayloadBuilderHandle<<Node::Types as NodeTypesWithEngine>::Engine>>
The components for the node with the given types
Required Methods§
Sourcefn build_components(
self,
ctx: &BuilderContext<Node>,
) -> impl Future<Output = Result<Self::Components>> + Send
fn build_components( self, ctx: &BuilderContext<Node>, ) -> impl Future<Output = Result<Self::Components>> + Send
Consumes the type and returns the created components.
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.