Expand description
This crate exports a single trait, Lexiclean, with a single method,
lexiclean, implemented on Path, that performs lexical path cleaning.
Lexical path cleaning simplifies paths without looking at the underlying filesystem. This means:
-
Normally, if
fileis a file and not a directory, the pathfile/..will fail to resolve to. Lexiclean resolves this to. -
Path::canonicalizereturnsio::Result<PathBuf>, because it must make system calls, that might fail. Lexiclean does not make system calls, and thus cannot fail. -
The path returned by lexiclean will only contain components present in the input path. This can make the resultant paths more legible for users, since
foo/..will resolve to., and not/Some/absolute/directory. -
Lexiclean does not respect symlinks.
Additional test cases and bug fixes are most welcome!