Serenity Operating System
1/*
2 * Copyright (c) 2020-2021, the SerenityOS developers.
3 * Copyright (c) 2021-2023, Sam Atkins <atkinssj@serenityos.org>
4 *
5 * SPDX-License-Identifier: BSD-2-Clause
6 */
7
8#include <LibWeb/CSS/Parser/Declaration.h>
9#include <LibWeb/CSS/Serialize.h>
10
11namespace Web::CSS::Parser {
12
13Declaration::Declaration(FlyString name, Vector<ComponentValue> values, Important important)
14 : m_name(move(name))
15 , m_values(move(values))
16 , m_important(move(important))
17{
18}
19
20Declaration::~Declaration() = default;
21
22ErrorOr<String> Declaration::to_string() const
23{
24 StringBuilder builder;
25
26 TRY(serialize_an_identifier(builder, m_name));
27 TRY(builder.try_append(": "sv));
28 TRY(builder.try_join(' ', m_values));
29
30 if (m_important == Important::Yes)
31 TRY(builder.try_append(" !important"sv));
32
33 return builder.to_string();
34}
35
36}