Is there a nicer way to use `map` and `race`?
- Dominant language
- Rust
- Stars
- 4.1k
- Forks
- 339
- PR merge metrics
- No merged PRs in 30d
Description
Trying to use `.map` from `futures::future::FutureExt` and `.race` from async_std, the best thing I came up with is
```rust
let interrupt_chan = futures::future::FutureExt::map(receive.recv(), |_| IdleResult::Interrupt);
let idle_chan = futures::future::FutureExt::map(idle_stream.take(1).collect::>(), |_| {
IdleResult::Message
});
let idle_result = interrupt_chan.race(idle_chan).await;
```
but I would like to write
```rust
let interrupt_chan = receive.recv().map(|_| IdleResult::Interrupt);
let idle_chan = idle_stream.take(1).collect::>().map(|_| {
IdleResult::Message
});
let idle_result = interrupt_chan.race(idle_chan).await;
```
I believe this is a general issues with methods provided by `futures` vs `async_std` at the moment
Contributor guide
Assessment
This issue has not been assessed yet.