{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreign4yv4u4uljaqa4zvb4gz65dvy7pkjr5cuanvu44ei5xkfrivck4",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mm5l5uze3522"
},
"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?"
}