Skip to main content

acta_build/
lib.rs

1use rayon::prelude::*;
2use walkdir::WalkDir;
3
4pub fn walk_src_max_width(dir: &str, strip_prefix: &str) -> usize {
5    WalkDir::new(dir)
6        .into_iter()
7        .filter_map(|e| e.ok())
8        .filter(|e| e.path().extension().is_some_and(|ext| ext == "rs"))
9        .collect::<Vec<_>>()
10        .par_iter()
11        .map(|e| {
12            let display = e.path().to_string_lossy().replace('\\', "/");
13            display
14                .find(strip_prefix)
15                .map(|i| &display[i + strip_prefix.len()..])
16                .unwrap_or(&display)
17                .len()
18        })
19        .max()
20        .unwrap_or(16)
21        + 4
22}