Commit 3eb36bd
Use upstream APIs: drop build_meta, proper tail/text, zero-alloc navigation
Major refactor to use simdxml's python-bindings-api branch directly:
- Drop IndexWithMeta entirely — no more custom parents, name_ids,
child_positions, or unique_names. self_cell dependent is now just
XmlIndex directly.
- .text uses upstream direct_text_first() — zero allocation
- .tail uses upstream tail_text() — O(log n) binary search instead
of O(n) substring search through raw XML
- .getparent() uses upstream parent() — direct array lookup
- .getnext()/.getprevious() use upstream child_position() + child_at()
- __len__ uses upstream child_count() — zero allocation
- __getitem__ uses upstream child_at() — zero allocation
- child_tags/descendant_tags use upstream child_slice() — zero alloc
- attrib/keys/items use upstream attributes() — single-pass parsing
- Tag interning built from upstream name_ids/name_table (no rebuild)
- Cargo.toml: simdxml dependency points to git branch (temporary,
will switch to crates.io release)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 8597d87 commit 3eb36bd
2 files changed
Lines changed: 136 additions & 259 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
0 commit comments