/* * Copyright (c) 2020-2021, the SerenityOS developers. * Copyright (c) 2021, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include #include #include namespace Web::CSS { StyleRule::StyleRule(StyleRule::Type type) : m_type(type) { } StyleRule::~StyleRule() = default; template void append_with_to_string(StringBuilder& builder, SeparatorType& separator, CollectionType& collection) { bool first = true; for (auto& item : collection) { if (first) first = false; else builder.append(separator); builder.append(item.to_string()); } } String StyleRule::to_string() const { StringBuilder builder; if (is_at_rule()) { builder.append("@"); serialize_an_identifier(builder, m_at_rule_name); } append_with_to_string(builder, " ", m_prelude); if (m_block) builder.append(m_block->to_string()); else builder.append(';'); return builder.to_string(); } }