/* * Copyright (c) 2018-2024, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::SelectorEngine { enum class SelectorKind { Normal, Relative, }; bool matches(CSS::Selector const&, Optional style_sheet_for_rule, DOM::Element const&, GC::Ptr shadow_host, Optional = {}, GC::Ptr scope = {}, SelectorKind selector_kind = SelectorKind::Normal, GC::Ptr anchor = nullptr); [[nodiscard]] bool fast_matches(CSS::Selector const&, Optional style_sheet_for_rule, DOM::Element const&, GC::Ptr shadow_host); [[nodiscard]] bool can_use_fast_matches(CSS::Selector const&); [[nodiscard]] bool matches_hover_pseudo_class(DOM::Element const&); }