pub async fn wait_for_duration<F, Fut>(f: F, duration: Duration)where F: FnMut() -> Fut, Fut: Future<Output = bool> + Send + 'static,