tokei 1.6.0

Count your code, quickly.
use std::fmt;

#[derive(Debug)]
pub struct Stats {
    pub name: String,
    pub code: usize,
    pub blanks: usize,
    pub lines: usize,
    pub comments: usize,
}


impl Stats {
    pub fn new<S: Into<String>>(name: S) -> Self {
        Stats {
            name: name.into(),
            code: 0,
            blanks: 0,
            lines: 0,
            comments: 0,
        }
    }
}


impl fmt::Display for Stats {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        let name = if self.name.len() > 24 {
            let mut name = String::from("|");
            name.push_str(&self.name[self.name.len() - 24..]);
            name
        } else {
            self.name.clone()
        };
        write!(f,
               " {: <25} {:>12} {:>12} {:>12} {:>12}",
               name,
               self.lines,
               self.blanks,
               self.comments,
               self.code)
    }
}