FutureExt provides our familiar .then, .and_then, .map etc.
However, after switching to std::future::Future, in many places we can switch directly to using async/async move block, or async function (when lifetimes of arguments are not a problem)
In practice, it might be able to save us some unnecessary clones and make the code more readable and tidy.
A demo of such refactoring is #3359
For new contributors who want to work on this:
Search in the codebase the keyword FutureExt, especially many files under cli/ops/.... Try replacing some places where .then/.and_then/.map etc. is used with a complete async block which returns a future.
FYI I'm working on update to tokio 0.2 which will should remove a few of these usages.
I think we can close this issue now, we're left with around 20 imports of FutureExt 馃憤
Most helpful comment
FYI I'm working on update to tokio 0.2 which will should remove a few of these usages.