Codex Handbook
windows-sandbox-rs/src/path_normalization.rs 31 lines
use std::path::Path;use std::path::PathBuf;pub fn canonicalize_path(path: &Path) -> PathBuf {    dunce::canonicalize(path).unwrap_or_else(|_| path.to_path_buf())}pub fn canonical_path_key(path: &Path) -> String {    canonicalize_path(path)        .to_string_lossy()        .replace('\\', "/")        .to_ascii_lowercase()}#[cfg(test)]mod tests {    use super::canonical_path_key;    use pretty_assertions::assert_eq;    use std::path::Path;    #[test]    fn canonical_path_key_normalizes_case_and_separators() {        let windows_style = Path::new(r"C:\Users\Dev\Repo");        let slash_style = Path::new("c:/users/dev/repo");        assert_eq!(            canonical_path_key(windows_style),            canonical_path_key(slash_style)        );    }}