Given a collection of Futures, say a Vec<impl Future<..>>, how can I block and run all of the Futures concurrently until the first Future is ready?
The closest feature I can find is the select macro (which is also available in Tokio). Unfortunately it only works with an explicit number of Futures, instead of handling a collection of them.
There is an equivalent of this feature in Javascript, called Promise.race. Is there a way to do this in Rust?
Or perhaps there's a way to fulfill this use case using another pattern, perhaps with channels?