fn render()

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(())
    }