Module invalidator

Module invalidator 

Source
Expand description

The struct that takes care of encapsulating all the logic on where and how element styles need to be invalidated.

Structs§

DescendantInvalidationLists
Different invalidation lists for descendants.
Invalidation
An Invalidation is a complex selector that describes which elements, relative to a current element we are processing, must be restyled.
InvalidationResult
The result of a whole invalidation process for a given element.
NegationScopeVisitor 🔒
A struct that visits a selector and determines if there is a :scope component nested withing a negation. eg. :not(:scope)
ProcessInvalidationResult 🔒
The result of processing a single invalidation for a given element.
SiblingInfo 🔒
SiblingTraversalMap
Traversal mapping for elements under consideration. It acts like a snapshot map, though this only “maps” one element at most. For general invalidations, this has no effect, especially since when DOM mutates, the mutation’s effect should not escape the subtree being mutated. This is not the case for relative selectors, unfortunately, so we may end up traversing a portion of the DOM tree that mutated. In case the mutation is removal, its sibling relation is severed by the time the invalidation happens. This structure recovers that relation. Note - it assumes that there is only one element under this effect.
TreeStyleInvalidator
The struct that takes care of encapsulating all the logic on where and how element styles need to be invalidated.

Enums§

DescendantInvalidationKind 🔒
The kind of descendant invalidation we’re processing.
InvalidationAddOverride
The kind of traversal an invalidation requires.
InvalidationKind 🔒
The kind of invalidation we’re processing.

Traits§

InvalidationProcessor
A trait to abstract the collection of invalidations for a given pass.

Functions§

any_next_has_scope_in_negation
Determines if we can find a selector in the form of :not(:scope) anywhere down the chain of dependencies.
note_scope_dependency_force_at_subject
Note the child dependencies of a scope end selector This is necessary because the scope end selector is not bound to :scope

Type Aliases§

InvalidationVector
A vector of invalidations, optimized for small invalidation sets.