Use Pin<Box<>> for collation future (#1792)

This commit is contained in:
Bastian Köcher
2020-10-07 13:29:00 +02:00
committed by GitHub
parent 7f4646505a
commit 2b798f8571
4 changed files with 5 additions and 4 deletions
@@ -407,7 +407,7 @@ mod tests {
Arc::new(CollationGenerationConfig { Arc::new(CollationGenerationConfig {
key: CollatorPair::generate().0, key: CollatorPair::generate().0,
collator: Box::new(|_: Hash, _vd: &ValidationData| { collator: Box::new(|_: Hash, _vd: &ValidationData| {
Box::new(TestCollator) TestCollator.boxed()
}), }),
para_id: para_id.into(), para_id: para_id.into(),
}) })
+1 -1
View File
@@ -1876,7 +1876,7 @@ mod tests {
fn test_collator_generation_msg() -> CollationGenerationMessage { fn test_collator_generation_msg() -> CollationGenerationMessage {
CollationGenerationMessage::Initialize(CollationGenerationConfig { CollationGenerationMessage::Initialize(CollationGenerationConfig {
key: CollatorPair::generate().0, key: CollatorPair::generate().0,
collator: Box::new(|_, _| Box::new(TestCollator)), collator: Box::new(|_, _| TestCollator.boxed()),
para_id: Default::default(), para_id: Default::default(),
}) })
} }
+2 -1
View File
@@ -35,6 +35,7 @@ use polkadot_statement_table::{
}, },
v1::Misbehavior as TableMisbehavior, v1::Misbehavior as TableMisbehavior,
}; };
use std::pin::Pin;
pub use sp_core::traits::SpawnNamed; pub use sp_core::traits::SpawnNamed;
@@ -289,7 +290,7 @@ pub struct CollationGenerationConfig {
/// Will be called with the hash of the relay chain block the parachain /// Will be called with the hash of the relay chain block the parachain
/// block should be build on and the [`ValidationData`] that provides /// block should be build on and the [`ValidationData`] that provides
/// information about the state of the parachain on the relay chain. /// information about the state of the parachain on the relay chain.
pub collator: Box<dyn Fn(Hash, &ValidationData) -> Box<dyn Future<Output = Option<Collation>> + Unpin + Send> + Send + Sync>, pub collator: Box<dyn Fn(Hash, &ValidationData) -> Pin<Box<dyn Future<Output = Option<Collation>> + Send>> + Send + Sync>,
/// The parachain that this collator collates for /// The parachain that this collator collates for
pub para_id: ParaId, pub para_id: ParaId,
} }
@@ -39,7 +39,7 @@ struct CollationGenerationConfig {
/// Collate will be called with the relay chain hash the parachain should build /// Collate will be called with the relay chain hash the parachain should build
/// a block on and the `ValidationData` that provides information about the state /// a block on and the `ValidationData` that provides information about the state
/// of the parachain on the relay chain. /// of the parachain on the relay chain.
collator: Box<dyn Fn(Hash, &ValidationData) -> Box<dyn Future<Output = Option<Collation>>>> collator: Box<dyn Fn(Hash, &ValidationData) -> Pin<Box<dyn Future<Output = Option<Collation>>>>>
para_id: ParaId, para_id: ParaId,
} }
``` ```