//! Reads a line from stdin, or exits with an error if nothing is read in 5 seconds. use std::time::Duration; use async_std::io; use async_std::task; fn main() -> io::Result<()> { // This async scope times out after 5 seconds. task::block_on(io::timeout(Duration::from_secs(5), async { let stdin = io::stdin(); // Read a line from the standard input and display it. let mut line = String::new(); stdin.read_line(&mut line).await?; dbg!(line); Ok(()) })) }