{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreign4yv4u4uljaqa4zvb4gz65dvy7pkjr5cuanvu44ei5xkfrivck4",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mm5ylgp4itu2"
  },
  "path": "/t/could-you-borrow-a-bit/24300#post_16",
  "publishedAt": "2026-05-18T17:20:48.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "It's just a rough draft. Sure, you can keep the byte length as `usize` and pack head and tail bit offsets into `u8` or use some other layout, it does not change the idea.\n\nYou are unlikely to encounter in practice allocations larger than `usize::MAX / 4` bits, especially considering that allocations in Rust can not be bigger than `isize::MAX` bytes, so we can just panic in such pathological scenarios.\n\nmathstuf:\n\n> the `PhantomData` needs to keep a reference to a `[u8]` slice\n\nAFAIK there is absolutely no difference between `PhantomData<&'a mut u8>` and `PhantomData<&'a mut [u8]>`. `PhantomData` is used to track the lifetime and variance, so the concrete type does not matter here.",
  "title": "Could you borrow a bit?"
}