/* * Copyright (c) 2025, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::DOM { class ElementReference { public: ElementReference(GC::Ref element, Optional pseudo_element = {}) : m_element(element) , m_pseudo_element(move(pseudo_element)) { } Element& element() { return m_element; } Element const& element() const { return m_element; } Optional pseudo_element() const { return m_pseudo_element; } void visit(GC::Cell::Visitor& visitor) const { visitor.visit(m_element); } private: GC::Ref m_element; Optional m_pseudo_element; }; }