Coverage Report

Created: 2025-12-18 07:52

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibWeb/CSS/StyleValues/CounterDefinitionsStyleValue.h
Line
Count
Source
1
/*
2
 * Copyright (c) 2024, Sam Atkins <atkinssj@serenityos.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#pragma once
8
9
#include <AK/FlyString.h>
10
#include <LibWeb/CSS/CSSStyleValue.h>
11
12
namespace Web::CSS {
13
14
struct CounterDefinition {
15
    FlyString name;
16
    bool is_reversed;
17
    ValueComparingRefPtr<CSSStyleValue const> value;
18
};
19
20
/**
21
 * Holds a list of CounterDefinitions.
22
 * Shared between counter-increment, counter-reset, and counter-set properties that have (almost) identical grammar.
23
 */
24
class CounterDefinitionsStyleValue : public StyleValueWithDefaultOperators<CounterDefinitionsStyleValue> {
25
public:
26
    static ValueComparingNonnullRefPtr<CounterDefinitionsStyleValue> create(Vector<CounterDefinition> counter_definitions)
27
0
    {
28
0
        return adopt_ref(*new (nothrow) CounterDefinitionsStyleValue(move(counter_definitions)));
29
0
    }
30
0
    virtual ~CounterDefinitionsStyleValue() override = default;
31
32
0
    auto const& counter_definitions() const { return m_counter_definitions; }
33
    virtual String to_string() const override;
34
35
    bool properties_equal(CounterDefinitionsStyleValue const& other) const;
36
37
private:
38
    explicit CounterDefinitionsStyleValue(Vector<CounterDefinition> counter_definitions)
39
0
        : StyleValueWithDefaultOperators(Type::CounterDefinitions)
40
0
        , m_counter_definitions(move(counter_definitions))
41
0
    {
42
0
    }
43
44
    Vector<CounterDefinition> m_counter_definitions;
45
};
46
47
}