View all comments
Feature gate: #![feature(normalize_lexically)]
This is a tracking issue for Path::normalize_lexically that is used to normalize a path, including .. parent references, without touching the filesystem.
Public API
// std::path
impl Path {
pub fn normalize_lexically(&self) -> Result<PathBuf, NormalizeError> {
}
Steps / History
Unresolved Questions
- Should
PathBuf have a method that normalizes in-place? Normalizing a path just removes components.
- Should this disallow resolving to the empty path or the single
. path.
- Should this only allow paths without a root or prefix? It may be surprising that
base_path.join(user_path.normalize_lexically()?) can still escape the base path.
The last two can be summarised as: should this strictly require paths to be sub-paths?
View all comments
Feature gate:
#![feature(normalize_lexically)]This is a tracking issue for
Path::normalize_lexicallythat is used to normalize a path, including..parent references, without touching the filesystem.Public API
Steps / History
normalize_lexically#134696Unresolved Questions
PathBufhave a method that normalizes in-place? Normalizing a path just removes components..path.base_path.join(user_path.normalize_lexically()?)can still escape the base path.The last two can be summarised as: should this strictly require paths to be sub-paths?
Footnotes
https://std-dev-guide.rust-lang.org/feature-lifecycle/stabilization.html ↩