dirwalk 1.1.1

Platform-optimized recursive directory walker with metadata
Documentation
//! Internal path utilities.

pub fn parent_dir(path: &str) -> &str {
    match path.rfind(['/', '\\']) {
        Some(pos) => &path[..pos],
        None => "",
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn parent_dir_no_separator() {
        assert_eq!(parent_dir("foo.txt"), "");
    }

    #[test]
    fn parent_dir_empty_string() {
        assert_eq!(parent_dir(""), "");
    }

    #[test]
    fn parent_dir_one_level_forward_slash() {
        assert_eq!(parent_dir("sub/foo.txt"), "sub");
    }

    #[test]
    fn parent_dir_one_level_backslash() {
        assert_eq!(parent_dir("sub\\foo.txt"), "sub");
    }

    #[test]
    fn parent_dir_nested() {
        assert_eq!(parent_dir("a/b/c.txt"), "a/b");
    }

    #[test]
    fn parent_dir_deeply_nested() {
        assert_eq!(parent_dir("a/b/c/d.rs"), "a/b/c");
    }
}