/* * Copyright (c) 2021-2023, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include namespace Web::CSS { ErrorOr escape_a_character(StringBuilder&, u32 character); ErrorOr escape_a_character_as_code_point(StringBuilder&, u32 character); ErrorOr serialize_an_identifier(StringBuilder&, StringView ident); ErrorOr serialize_a_string(StringBuilder&, StringView string); ErrorOr serialize_a_url(StringBuilder&, StringView url); ErrorOr serialize_a_local(StringBuilder&, StringView path); ErrorOr serialize_unicode_ranges(StringBuilder&, Vector const& unicode_ranges); ErrorOr serialize_a_srgb_value(StringBuilder&, Color color); ErrorOr escape_a_character(u32 character); ErrorOr escape_a_character_as_code_point(u32 character); ErrorOr serialize_an_identifier(StringView ident); ErrorOr serialize_a_string(StringView string); ErrorOr serialize_a_url(StringView url); ErrorOr serialize_a_srgb_value(Color color); template ErrorOr serialize_a_comma_separated_list(StringBuilder& builder, Vector const& items, SerializeItem serialize_item) { for (size_t i = 0; i < items.size(); i++) { auto& item = items.at(i); TRY(serialize_item(builder, item)); if ((i + 1) < items.size()) { TRY(builder.try_append(",\n"sv)); } } return {}; } }