pub fn clean_path(path: &str) -> Cow<'_, str>
Expand description
Simplifies paths by stripping redundant components.
This removes redundant ../
or ./
path components. However, this function does not operate on
the file system. Since it does not resolve symlinks, this is a potentially lossy operation.
ยงExamples
Remove ./
components:
assert_eq!(symbolic_common::clean_path("/a/./b"), "/a/b");
Remove path components followed by ../
:
assert_eq!(symbolic_common::clean_path("/a/b/../c"), "/a/c");
Note that when the path is relative, the parent dir components may exceed the top-level:
assert_eq!(symbolic_common::clean_path("/foo/../../b"), "../b");