Rust closures capture entire local variables rather than individual fields, which can cause borrow checker conflicts when a closure captures `self` but only uses one field while another field is mutably borrowed. The fix is to introduce a local variable referencing only the needed field before the closure, so the closure captures that variable instead of all of `self`. A more explicit pattern uses a block with `let` bindings followed by a `move` closure, giving precise control over what is captured and how — analogous to C++ capture clauses. RFC #2229 aims to eventually allow closures to capture individual struct paths rather than whole variables.