/* * Copyright (c) 2021, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Web::CSS { class CSSRuleList { public: explicit CSSRuleList(NonnullRefPtrVector&&); virtual ~CSSRuleList(); RefPtr item(size_t index) const { if (index >= length()) return nullptr; return m_rules[index]; } size_t length() const { return m_rules.size(); } using ConstIterator = AK::SimpleIterator> const, CSSRule const>; using Iterator = AK::SimpleIterator>, CSSRule>; ConstIterator const begin() const { return m_rules.begin(); } Iterator begin() { return m_rules.begin(); } ConstIterator const end() const { return m_rules.end(); } Iterator end() { return m_rules.end(); } private: NonnullRefPtrVector m_rules; }; }