paline 0.5.0

一个用 Rust 编写的代码行数统计命令行工具。递归扫描目录,按编程语言统计行数,并以彩色横向条形图在终端中可视化展示。
use std::fs::File;
use std::io::{self, Cursor, Read};

pub enum Reader {
    Disk { file: File, size: u64 },
    Commit { cursor: Cursor<Vec<u8>> },
}

impl Read for Reader {
    fn read(&mut self, buf: &mut [u8]) -> io::Result<usize> {
        match self {
            Reader::Disk { file, .. } => file.read(buf),
            Reader::Commit { cursor, .. } => cursor.read(buf),
        }
    }
}

impl Reader {
    pub fn size(&self) -> u64 {
        match self {
            Reader::Disk { size, .. } => *size,
            Reader::Commit { cursor, .. } => cursor.get_ref().len() as u64,
        }
    }
}