Serenity Operating System
at master 36 lines 842 B view raw
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}