@@ -19,7 +19,7 @@ use std::marker::PhantomData;
1919/// consensus layer.
2020///
2121/// This trait is intended to be stateless and only define the types of the node.
22- pub trait NodeTypes : Send + Sync + ' static {
22+ pub trait NodeTypes : Send + Sync + Unpin + ' static {
2323 /// The node's primitive types, defining basic operations and structures.
2424 type Primitives : NodePrimitives ;
2525 /// The node's engine types, defining the interaction with the consensus engine.
@@ -61,11 +61,17 @@ impl<Types, DB, Provider> Default for FullNodeTypesAdapter<Types, DB, Provider>
6161 }
6262}
6363
64+ impl < Types , DB , Provider > Clone for FullNodeTypesAdapter < Types , DB , Provider > {
65+ fn clone ( & self ) -> Self {
66+ Self { types : self . types , db : self . db , provider : self . provider }
67+ }
68+ }
69+
6470impl < Types , DB , Provider > NodeTypes for FullNodeTypesAdapter < Types , DB , Provider >
6571where
6672 Types : NodeTypes ,
67- DB : Send + Sync + ' static ,
68- Provider : Send + Sync + ' static ,
73+ DB : Send + Sync + Unpin + ' static ,
74+ Provider : Send + Sync + Unpin + ' static ,
6975{
7076 type Primitives = Types :: Primitives ;
7177 type Engine = Types :: Engine ;
0 commit comments