lbl-core 0.1.0

lbl is a toolkit for managing address labels
Documentation
use std::collections::HashMap;
use std::path::PathBuf;

/// partition paths by path extension
pub fn paths_by_extension(paths: Vec<PathBuf>) -> HashMap<String, Vec<PathBuf>> {
    let mut map: HashMap<String, Vec<PathBuf>> = HashMap::new();

    for path in paths {
        if let Some(ext) = path.extension() {
            if let Some(ext_str) = ext.to_str() {
                map.entry(ext_str.to_string()).or_default().push(path);
            } else {
                map.entry(String::from("misc")).or_default().push(path);
            }
        } else {
            map.entry(String::from("none")).or_default().push(path);
        }
    }
    map
}