Paths may be arbitrary sequences of bytes, so we cannot guarantee that they are utf8 or even convertible to utf8 and back. However, we do want to be able to convert the path to utf8, and vice versa.
LexicalPathcurrently deals with manipulating paths and getting their parts. Do we roll this intoPath?Core::Directorydeals with iteration, stat and open. Do we roll this intoPath?Core::DeprecatedFilehas methods for other filesystem checks and operations. Do we roll this intoPath?Core::StandardPathsprovides getters for the home directory path, and friends. Do we roll this intoPath?
Rust has a Path class for a path, allowing you to access its components and query if it's a directory etc; and PathBuf class as a kind of StringBuilder thing?