/* * Copyright (c) 2026, Callum Law * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::CSS { class FontVariantAlternatesFunctionStyleValue final : public StyleValueWithDefaultOperators { public: static NonnullRefPtr create(FontFeatureValueType type, StyleValueVector names) { return adopt_ref(*new FontVariantAlternatesFunctionStyleValue(type, move(names))); } virtual void serialize(StringBuilder&, SerializationMode) const override; FontFeatureValueType function_type() const { return m_function_type; } StyleValueVector const& names() const { return m_names; } virtual ValueComparingNonnullRefPtr absolutized(ComputationContext const&) const override; bool properties_equal(FontVariantAlternatesFunctionStyleValue const& other) const { return m_function_type == other.m_function_type && m_names == other.m_names; } virtual bool is_computationally_independent() const override { return all_of(m_names, [](auto const& name) { return name->is_computationally_independent(); }); } private: FontVariantAlternatesFunctionStyleValue(FontFeatureValueType function_type, StyleValueVector names) : StyleValueWithDefaultOperators(Type::FontVariantAlternatesFunction) , m_function_type(function_type) , m_names(move(names)) { } virtual ~FontVariantAlternatesFunctionStyleValue() override = default; FontFeatureValueType m_function_type; StyleValueVector m_names; }; }