pub async fn wait_for_some<F, Fut, T>(f: F) -> Option<T>where F: Fn() -> Fut, Fut: Future<Output = Option<T>>,