chore: add required trait bounds to DB type (#7960)

This commit is contained in:
Matthias Seitz
2024-04-29 15:18:23 +02:00
committed by GitHub
parent 14ed7196c2
commit af2da06a0d
2 changed files with 9 additions and 6 deletions

View File

@ -1,7 +1,10 @@
//! Traits for configuring a node //! Traits for configuring a node
use crate::{primitives::NodePrimitives, ConfigureEvm, EngineTypes}; use crate::{primitives::NodePrimitives, ConfigureEvm, EngineTypes};
use reth_db::database::Database; use reth_db::{
database::Database,
database_metrics::{DatabaseMetadata, DatabaseMetrics},
};
use reth_network::NetworkHandle; use reth_network::NetworkHandle;
use reth_payload_builder::PayloadBuilderHandle; use reth_payload_builder::PayloadBuilderHandle;
use reth_provider::FullProvider; use reth_provider::FullProvider;
@ -25,11 +28,11 @@ pub trait NodeTypes: Send + Sync + 'static {
fn evm_config(&self) -> Self::Evm; fn evm_config(&self) -> Self::Evm;
} }
/// A helper type that is downstream of the [NodeTypes] trait and adds stateful components to the /// A helper trait that is downstream of the [NodeTypes] trait and adds stateful components to the
/// node. /// node.
pub trait FullNodeTypes: NodeTypes + 'static { pub trait FullNodeTypes: NodeTypes + 'static {
/// Underlying database type. /// Underlying database type used by the node to store and retrieve data.
type DB: Database + Clone + 'static; type DB: Database + DatabaseMetrics + DatabaseMetadata + Clone + Unpin + 'static;
/// The provider type used to interact with the node. /// The provider type used to interact with the node.
type Provider: FullProvider<Self::DB>; type Provider: FullProvider<Self::DB>;
} }
@ -71,7 +74,7 @@ impl<Types, DB, Provider> FullNodeTypes for FullNodeTypesAdapter<Types, DB, Prov
where where
Types: NodeTypes, Types: NodeTypes,
Provider: FullProvider<DB>, Provider: FullProvider<DB>,
DB: Database + Clone + 'static, DB: Database + DatabaseMetrics + DatabaseMetadata + Clone + Unpin + 'static,
{ {
type DB = DB; type DB = DB;
type Provider = Provider; type Provider = Provider;

View File

@ -187,7 +187,7 @@ impl<DB> NodeBuilder<DB> {
impl<DB> NodeBuilder<DB> impl<DB> NodeBuilder<DB>
where where
DB: Database + Unpin + Clone + 'static, DB: Database + DatabaseMetrics + DatabaseMetadata + Clone + Unpin + 'static,
{ {
/// Configures the types of the node. /// Configures the types of the node.
pub fn with_types<T>(self, types: T) -> NodeBuilderWithTypes<RethFullAdapter<DB, T>> pub fn with_types<T>(self, types: T) -> NodeBuilderWithTypes<RethFullAdapter<DB, T>>