pub struct MatchingContext<'a, Impl>where
    Impl: SelectorImpl,
{ pub bloom_filter: Option<&'a BloomFilter>, pub nth_index_cache: Option<&'a mut NthIndexCache>, pub scope_element: Option<OpaqueElement>, pub current_host: Option<OpaqueElement>, pub pseudo_element_matching_fn: Option<&'a dyn Fn(&Impl::PseudoElement) -> bool>, pub extra_data: Impl::ExtraMatchingData, /* private fields */ }
Expand description

Data associated with the matching process for a element. This context is used across many selectors for an element, so it’s not appropriate for transient data that applies to only a single selector.

Fields§

§bloom_filter: Option<&'a BloomFilter>

Input with the bloom filter used to fast-reject selectors.

§nth_index_cache: Option<&'a mut NthIndexCache>

An optional cache to speed up nth-index-like selectors.

§scope_element: Option<OpaqueElement>

The element which is going to match :scope pseudo-class. It can be either one :scope element, or the scoping element.

Note that, although in theory there can be multiple :scope elements, in current specs, at most one is specified, and when there is one, scoping element is not relevant anymore, so we use a single field for them.

When this is None, :scope will match the root element.

See https://drafts.csswg.org/selectors-4/#scope-pseudo

§current_host: Option<OpaqueElement>

The current shadow host we’re collecting :host rules for.

§pseudo_element_matching_fn: Option<&'a dyn Fn(&Impl::PseudoElement) -> bool>

An optional hook function for checking whether a pseudo-element should match when matching_mode is ForStatelessPseudoElement.

§extra_data: Impl::ExtraMatchingData

Extra implementation-dependent matching data.

Implementations§

Constructs a new MatchingContext.

Constructs a new MatchingContext for use in visited matching.

Override the quirks mode we’re matching against.

FIXME(emilio): This is a hack for XBL quirks-mode mismatches.

Whether we’re matching a nested selector.

Whether we’re matching inside a :not(..) selector.

The quirks mode of the document.

The matching-mode for this selector-matching operation.

The case-sensitivity for class and ID selectors

Runs F with a deeper nesting level.

Runs F with a deeper nesting level, and marking ourselves in a negation, for a :not(..) selector, for example.

Runs F with a different VisitedHandlingMode.

Runs F with a given shadow host which is the root of the tree whose rules we’re matching.

Returns the current shadow host whose shadow root we’re matching rules against.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.