in ingester/src/progress.rs [58:110]
fn render(&mut self) -> term::Result<()> {
// Reset from last render
for i in 0..std::mem::replace(&mut self.last_lines, 0) {
if i == 0 {
self.terminal.carriage_return()?;
} else {
self.terminal.cursor_up()?;
}
self.terminal.delete_line()?;
}
if !self.status.pings.done() {
if self.last_lines > 0 {
writeln!(self.terminal)?;
}
let complete = self.status.pings.complete_count();
let total = self.status.pings.total_count();
write!(
self.terminal,
"Pings: {:.1}% ({}/{}), {} symbolicating",
complete as f64 * 100. / total as f64,
complete,
total,
self.status.pings.symbolicating_count()
)?;
self.last_lines += 1;
}
if let Some(cache) = self.status.cache.as_ref() {
if self.last_lines > 0 {
writeln!(self.terminal)?;
}
let current = cache.current();
let max = cache.max_size();
write!(
self.terminal,
"Cache usage: {:.1}% of {}",
current as f64 * 100. / max as f64,
friendly_byte_units(cache.max_size()),
)?;
self.last_lines += 1;
}
if self.status.is_cancelled() {
if self.last_lines > 0 {
writeln!(self.terminal)?;
}
write!(self.terminal, "Cancelling...")?;
self.last_lines += 1;
}
Ok(())
}