{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreibaql4gb6ywpfxrrtsbnthnr426cx5ajofh4k5nuozkuexbyoesyi",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mlgksmekxdh2"
},
"path": "/t/core-path/24233#post_4",
"publishedAt": "2026-05-09T13:32:47.000Z",
"site": "https://internals.rust-lang.org",
"textContent": "For the ecosystem i had in mind\n\n\n core::path::Path<Syntax> *borrowed path structure*\n\n alloc::path::PathBuf<Syntax> *owned path buffer*\n\n std::path::Path *native OS path, OsStr-backed, filesystem-facing*\n\n\na large fraction of code using `std::path::Path` is not asking the OS anything. It is using `Path` as a typed lexical structure.\n\nA lower-level generic path abstraction, while the filesystem-facing parts remain in `std`. Maybe there is room below it for a pure lexical path type.\n\nThis is some motivation and i believe its tempting to start a small first practical experiment.\n\n> For example, a tar archive uses Unix-style paths regardless of the host OS, and a Git/tooling crate may need to reason about Windows path restrictions while running on Linux. Those are path-syntax problems, not filesystem-access problems.",
"title": "core::path::Path"
}