Skip to content

Commit 3eb36bd

Browse files
cigraingerclaude
andcommitted
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

File tree

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ crate-type = ["cdylib"]
99

1010
[dependencies]
1111
pyo3 = { version = "0.28", features = ["extension-module", "abi3-py39"] }
12-
simdxml = "0.1"
12+
simdxml = { git = "https://github.com/simdxml/simdxml", branch = "python-bindings-api" }
1313
self_cell = "1"

0 commit comments

Comments
 (0)