Name Description Size 6288 Counting and non-counting Bloom filters tuned for use as ancestor filters for selector matching. 11806 1446 Helper module to build up a selector safely and efficiently. Our selector representation is designed to optimize matching, and has several requirements: * All simple selectors and combinators are stored inline in the same buffer as Component instances. * We store the top-level compound selectors from right to left, i.e. in matching order. * We store the simple selectors for each combinator from left to right, so that we match the cheaper simple selectors first. For example, the selector: .bar:hover > .baz:nth-child(2) + .qux Gets stored as: [.qux, + , .baz, :nth-child(2), > , .bar, :hover] Meeting all these constraints without extra memmove traffic during parsing is non-trivial. This module encapsulates those details and presents an easy-to-use API for the parser. 15057
Cargo.toml 826 184 16059 Kleen logic: 3516 1015 52731 3172 162397 rust-selectors 1171
relative_selector Small helpers to abstract over different containers. 950 Traits that nodes must implement. Breaks the otherwise-cyclic dependency between layout and style. 5846 Visitor traits for selectors. 4860