pub async fn select_abcd<A, B, C, D, FutA, FutB, FutC, FutD>(
    a: FutA,
    b: FutB,
    c: FutC,
    d: FutD
) -> OptionAbcd<A, B, C, D> where
    FutA: 'static + Future<Output = A> + Send,
    FutB: 'static + Future<Output = B> + Send,
    FutC: 'static + Future<Output = C> + Send,
    FutD: 'static + Future<Output = D> + Send
Expand description

Awaits the futures and returns the value from the one that completes first.

First moves them to the heap, to make them Unpin. Use SelectFuture::new to avoid allocating on the heap.