При чтении из 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),
}
}
}