reth_node_builder/builder/add_ons.rs
1//! Node add-ons. Depend on core [`NodeComponents`](crate::NodeComponents).
2
3use reth_node_api::{FullNodeComponents, NodeAddOns};
4
5use crate::{exex::BoxedLaunchExEx, hooks::NodeHooks};
6
7/// Additional node extensions.
8///
9/// At this point we consider all necessary components defined.
10pub struct AddOns<Node: FullNodeComponents, AddOns: NodeAddOns<Node>> {
11 /// Additional `NodeHooks` that are called at specific points in the node's launch lifecycle.
12 pub hooks: NodeHooks<Node, AddOns>,
13 /// The `ExExs` (execution extensions) of the node.
14 pub exexs: Vec<(String, Box<dyn BoxedLaunchExEx<Node>>)>,
15 /// Additional captured addons.
16 pub add_ons: AddOns,
17}