credence_lib/util/
file_path.rs

1use super::constants::*;
2
3use std::path::*;
4
5/// Filename with extension and without extension.
6pub fn file_name<PathT>(path: PathT) -> (String, String)
7where
8    PathT: AsRef<Path>,
9{
10    let path = path.as_ref().to_string_lossy();
11
12    let mut filename = path.as_ref();
13    if let Some(last_slash) = filename.rfind(MAIN_SEPARATOR) {
14        filename = &filename[last_slash + 1..];
15    }
16
17    let mut filename_without_extension = filename;
18    if let Some(first_dot) = filename_without_extension.find(EXTENSION_SEPARATOR) {
19        filename_without_extension = &filename_without_extension[..first_dot];
20    }
21
22    (filename.into(), filename_without_extension.into())
23}