Log by overwriting the previous output in the terminal
Log by overwriting the previous output in the terminal.
Useful for rendering progress bars, animations, etc.
This example will count down from 3 and then display Lift off! 🚀
.
extern crate log_update;
use log_update::LogUpdate;
use std::io::stdout;
use std::thread::sleep;
use std::time::Duration;
fn main() {
// Construct the log updater
let mut log_update = LogUpdate::new(stdout()).unwrap();
for i in [3, 2, 1].iter() {
// Update log to show message
log_update.render(&format!("Lift off in {}...", i)).unwrap();
// Sleep for one second
sleep(Duration::from_secs(1));
}
// Print final message
log_update.render("Lift off! 🚀").unwrap();
}
See documentation
Heavily inspired by @sindresorhus’ excellent log-update.