{
  "$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"
}