При чтении из std::io::stdin()
вход буферизуется до тех пор, пока не будет встречен EOF
. Я бы хотел обработать строки по мере их поступления, а не ждать, пока все буферизуется.
Для функции оболочки bar
, которая выполняется echo bar
каждую секунду навсегда, я тестирую это с помощью bar | thingy
. Он ничего не печатает, пока не будет ^C
.
Вот что я сейчас работаю с:
use std::io;
use std::io::timer;
use std::time::Duration;
fn main() {
let mut reader = io::stdin();
let interval = Duration::milliseconds(1000);
loop {
match reader.read_line() {
Ok(l) => print!("{}", l),
Err(_) => timer::sleep(interval),
}
}
}