Count, or compute differences of, lines of source code and comments.
--> Calculate -\
walk directory --> channel<PathBuf> --> Calculate -> Sum
--> Calculate -/
主线程与线程池, 主线程去递归的读取目录下的文件路径, 然后将路径发送到管道里面, 线程池中的每个线程去接收管道的发送来的路径, 然后去读取路径文件中的内容, 按照 计算规则去计算, 最后将计算结果进行聚合.
e.g.
$ cargo run -- src/
0.0066 secs
┌────────────────────────────────────────────────────────────────────────┐
| Language files Size Blank Comment Code |
├────────────────────────────────────────────────────────────────────────┤
| Rust 10 19.91 KB 91 17 594 |
├────────────────────────────────────────────────────────────────────────┤
| Sum 10 19.91 KB 91 17 594 |
└────────────────────────────────────────────────────────────────────────┘
$ cargo install cloc
或者本地安装
$ git clone https://github.com/ltoddy/cloc-rs.git
$ cargo install --path cloc-rs
src/config.rs
文件中, Config
结构体的default
方法中, 使用language!
宏来定义规则.language!($name, $ext, $single, $multi)
参数解释:
unwrap()