use futures::pin_mut;
async fn delay() {
for i in 0..6 {
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
println!("Ping! {}", i);
}
}
async fn runner() {
let delayer = delay();
pin_mut!(delayer);
if let Err(_) = tokio::time::timeout(std::time::Duration::from_secs(3), &mut delayer).await {
println!("Taking more than three seconds");
delayer.await;
}
}