/* * Copyright (c) 2023-2025, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::CSS { class IntegerStyleValue final : public StyleValue { public: static ValueComparingNonnullRefPtr create(i32 value) { return adopt_ref(*new (nothrow) IntegerStyleValue(value)); } i32 integer() const { return m_value; } virtual void serialize(StringBuilder&, SerializationMode) const override; virtual Vector tokenize() const override; virtual GC::Ref reify(JS::Realm&, FlyString const& associated_property) const override; bool equals(StyleValue const& other) const override { if (type() != other.type()) return false; auto const& other_integer = other.as_integer(); return m_value == other_integer.m_value; } virtual bool is_computationally_independent() const override { return true; } private: explicit IntegerStyleValue(i32 value) : StyleValue(Type::Integer) , m_value(value) { } i32 m_value { 0 }; }; }