Review follow-ups on top of the table detection: - Each block's column comes from a precomputed map and a binary search instead of scanning every column's members, so pages with many text blocks stay linear. - A table has at most 64 columns. Rows are materialized to every column, so a hostile page laid out as a staircase of blocks would otherwise make (blocks / 2)^2 cells. Test: a_staircase_of_blocks_is_not_a_huge_table. - RTF: a row's cell boundaries are written before its cells (RTF requires it), and a spanning cell ends at the last column it spans. The test checks the Totals row now spans two columns. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||