fn main() -> Result<(), minreq::Error> {
let mut buffer = Vec::new();
for byte in minreq::get("http://example.com").send_lazy()? {
let (byte, len) = match byte {
Ok((byte, len)) => (byte, len),
Err(minreq::Error::IoError(err)) if err.kind() == std::io::ErrorKind::WouldBlock => {
continue
}
Err(err) => return Err(err),
};
print!("{}", byte as char);
buffer.reserve(len);
buffer.push(byte);
flush();
sleep();
}
Ok(())
}
fn flush() {
use std::io::{stdout, Write};
stdout().lock().flush().ok();
}
fn sleep() {
use std::thread::sleep;
use std::time::Duration;
sleep(Duration::from_millis(2));
}