{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreidfbnbrbcjsoswahfmenhrgdxahuqfrbavpekgzv5r2yyo3ex3zfy",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mhdybsyxnx42"
  },
  "path": "/t/stable-type-identifiers-a-missing-piece-for-crabi-and-export/24093#post_9",
  "publishedAt": "2026-03-18T15:14:42.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "The complete type path is the same as what Rust uses as a crate name + modules + type name. Examples of this can be seen are `std::vec::Vec` and `serde::de::Deserialize` which already exists in Rust today. In order to fix the version issue, the hash of the crate will contain the major version.\n\nExamples: `hash(\"serde@1::de::Deserialize\") != hash(\"serde@2::de::Deserialize\")` The major version will only be used. Two builds of serde 1.0.100 and 1.0.200 as long as they are the same major version will create the same hash. It makes sense because the types are the same and have always been compatible with each other.\n\nIf a crate violates semver (breaks) on minor versions, it is a fault of that crate and not a fault with this identifier scheme.",
  "title": "Stable type identifiers: a missing piece for crABI and export"
}