Name Description Size
attr.rs 6288
bloom.rs Counting and non-counting Bloom filters tuned for use as ancestor filters for selector matching. 11806
build.rs 1446
builder.rs 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
CHANGES.md 184
context.rs 15040
kleene_value.rs Kleen logic: https://en.wikipedia.org/wiki/Three-valued_logic#Kleene_and_Priest_logics 3450
lib.rs 1015
matching.rs 52936
nth_index_cache.rs 3172
parser.rs 162375
README.md rust-selectors 1171
relative_selector
sink.rs Small helpers to abstract over different containers. 950
tree.rs Traits that nodes must implement. Breaks the otherwise-cyclic dependency between layout and style. 5846
visitor.rs Visitor traits for selectors. 4860