{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreiexo4rjg4ip2hdmcbsltjvfewpaviopaksdms2ofpcupgvhmx7jnu",
"uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mk7arjp6hsf2"
},
"path": "/t/bitslice-or-a-sound-way-to-implement-one/24194#post_5",
"publishedAt": "2026-04-24T00:14:59.000Z",
"site": "https://internals.rust-lang.org",
"tags": [
"RefToOwned",
"OwnedToRef"
],
"textContent": "Yeah, we do also have our own separate GAT-friendly traits for doing these bidirectional owned/reference conversions: RefToOwned and OwnedToRef which work better in these cases where we want to carry along some structured data in addition to a reference, which isn't otherwise possible with `Borrow` and `ToOwned`.\n\nThe particular `BitSlice` use case though happens to fall more into the territory of a custom DST, or one which is doing things which push the edge of what Rust is currently capable of expressing.",
"title": "`BitSlice` or a sound way to implement one"
}