lbl/filesystem/
path_utils.rs1use std::collections::HashMap;
2use std::path::PathBuf;
3
4pub fn paths_by_extension(paths: Vec<PathBuf>) -> HashMap<String, Vec<PathBuf>> {
6 let mut map: HashMap<String, Vec<PathBuf>> = HashMap::new();
7
8 for path in paths {
9 if let Some(ext) = path.extension() {
10 if let Some(ext_str) = ext.to_str() {
11 map.entry(ext_str.to_string()).or_default().push(path);
12 } else {
13 map.entry(String::from("misc")).or_default().push(path);
14 }
15 } else {
16 map.entry(String::from("none")).or_default().push(path);
17 }
18 }
19 map
20}