dynamic - 如何迭代`dyn Future`
问题描述
我有
futures: Vec<Box<dyn Future<Output = PendingTransaction<'a, ()>>>>,
...
let (res, idx, remaining_futures) = block_on(select_all(self.futures.into_iter().map(|x| &*x)));
它不编译:
Compiling server v0.1.0 (/home/porton/Projects/ubi-russia/private/server)
error[E0277]: the trait bound `&dyn core::future::future::Future<Output = ethers_providers::pending_transaction::PendingTransaction<'_, ()>>: core::future::future::Future` is not satisfied
--> src/transactions.rs:102:73
|
102 | let (res, idx, remaining_futures) = block_on(select_all(self.futures.into_iter().map(|x| &*x)));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `core::future::future::Future` is not implemented for `&dyn core::future::future::Future<Output = ethers_providers::pending_transaction::PendingTransaction<'_, ()>>`
|
::: /home/porton/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-util-0.3.5/src/future/select_all.rs:35:20
|
35 | I::Item: Future + Unpin,
| ------ required by this bound in `futures_util::future::select_all::select_all`
如何正确执行此操作?
解决方案
推荐阅读
- regex - Google Sheets ARRAYFORMULA 计算满足条件的前行
- mongodb - 在同一集合中查找值(嵌套查找)
- javascript - AJAX 进程返回未定义
- c# - 如何使用c#删除exe文件?自删除?
- ios - 无法点击作为 ImageView 子视图的按钮
- java - 使用 Paint Component 来适应 JFrame 中的图像
- python - 如何使用matplotlib制作第二个垂直轴,左侧有标签?
- angular - 如何在 Angular 9 上使用 XMB 翻译文件?
- python - ValueError: 使用 txt 解包的值太多(预期 2)python
- oracle - 目录位置不可写