From 7e8bfb7f5552956226d7c0460fc496b7b11cf505 Mon Sep 17 00:00:00 2001 From: zdave <dave@sp4m.net> Date: Thu, 25 May 2023 11:53:04 +0100 Subject: [PATCH] Get rid of some pointless pin_project stuff (#14212) --- substrate/Cargo.lock | 1 - substrate/client/network/transactions/Cargo.toml | 1 - substrate/client/network/transactions/src/lib.rs | 12 +++++------- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/substrate/Cargo.lock b/substrate/Cargo.lock index 7bffd9e1691..79f2b5e9092 100644 --- a/substrate/Cargo.lock +++ b/substrate/Cargo.lock @@ -9621,7 +9621,6 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "pin-project", "sc-network", "sc-network-common", "sc-peerset", diff --git a/substrate/client/network/transactions/Cargo.toml b/substrate/client/network/transactions/Cargo.toml index 3ae1dc5908d..868e5cdc1b8 100644 --- a/substrate/client/network/transactions/Cargo.toml +++ b/substrate/client/network/transactions/Cargo.toml @@ -18,7 +18,6 @@ codec = { package = "parity-scale-codec", version = "3.2.2", features = ["derive futures = "0.3.21" libp2p = "0.51.3" log = "0.4.17" -pin-project = "1.0.12" prometheus-endpoint = { package = "substrate-prometheus-endpoint", version = "0.10.0-dev", path = "../../../utils/prometheus" } sc-network = { version = "0.10.0-dev", path = "../" } sc-network-common = { version = "0.10.0-dev", path = "../common" } diff --git a/substrate/client/network/transactions/src/lib.rs b/substrate/client/network/transactions/src/lib.rs index f57556d3986..ca9fc63b6f8 100644 --- a/substrate/client/network/transactions/src/lib.rs +++ b/substrate/client/network/transactions/src/lib.rs @@ -97,21 +97,19 @@ impl Metrics { } } -#[pin_project::pin_project] struct PendingTransaction<H> { - #[pin] validation: TransactionImportFuture, tx_hash: H, } +impl<H> Unpin for PendingTransaction<H> {} + impl<H: ExHashT> Future for PendingTransaction<H> { type Output = (H, TransactionImport); - fn poll(self: Pin<&mut Self>, cx: &mut std::task::Context<'_>) -> Poll<Self::Output> { - let mut this = self.project(); - - if let Poll::Ready(import_result) = Pin::new(&mut this.validation).poll_unpin(cx) { - return Poll::Ready((this.tx_hash.clone(), import_result)) + fn poll(mut self: Pin<&mut Self>, cx: &mut std::task::Context<'_>) -> Poll<Self::Output> { + if let Poll::Ready(import_result) = self.validation.poll_unpin(cx) { + return Poll::Ready((self.tx_hash.clone(), import_result)) } Poll::Pending -- GitLab