1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 14:54:57 +00:00

AK: Make SourceGenerator::set() infallible

This commit is contained in:
Andreas Kling 2023-08-21 14:38:55 +02:00
parent 3d5728ef57
commit 8b936b5912
11 changed files with 141 additions and 142 deletions

View file

@ -891,8 +891,8 @@ static ErrorOr<void> generate_unicode_data_implementation(Core::InputBufferedFil
generator.set("special_casing_size", DeprecatedString::number(unicode_data.special_casing.size()));
generator.set("case_folding_size", DeprecatedString::number(unicode_data.case_folding.size()));
TRY(generator.set("CODE_POINT_TABLES_LSB_COUNT", TRY(String::number(CODE_POINT_TABLES_LSB_COUNT))));
TRY(generator.set("CODE_POINT_TABLES_LSB_MASK", TRY(String::formatted("{:#x}", CODE_POINT_TABLES_LSB_MASK))));
generator.set("CODE_POINT_TABLES_LSB_COUNT", TRY(String::number(CODE_POINT_TABLES_LSB_COUNT)));
generator.set("CODE_POINT_TABLES_LSB_MASK", TRY(String::formatted("{:#x}", CODE_POINT_TABLES_LSB_MASK)));
generator.append(R"~~~(
#include <AK/Array.h>
@ -1092,8 +1092,8 @@ static constexpr Array<@mapping_type@, @size@> s_@name@_mappings { {
append_code_point_mappings("decomposition"sv, "CodePointDecompositionRaw"sv, unicode_data.code_points_with_decomposition_mapping, [](auto const& data) { return data.decomposition_mapping; });
auto append_casing_table = [&](auto collection_snake, auto const& unique_properties) -> ErrorOr<void> {
TRY(generator.set("name", TRY(String::formatted("{}_unique_properties", collection_snake))));
TRY(generator.set("size", TRY(String::number(unique_properties.size()))));
generator.set("name", TRY(String::formatted("{}_unique_properties", collection_snake)));
generator.set("size", TRY(String::number(unique_properties.size())));
auto optional_code_point_to_string = [](auto const& code_point) -> ErrorOr<String> {
if (!code_point.has_value())
@ -1110,14 +1110,14 @@ static constexpr Array<@mapping_type@, @size@> s_@name@_mappings { {
static constexpr Array<CasingTable, @size@> @name@ { {)~~~");
for (auto const& casing : unique_properties) {
TRY(generator.set("canonical_combining_class", TRY(String::number(casing.canonical_combining_class))));
TRY(generator.set("simple_uppercase_mapping", TRY(optional_code_point_to_string(casing.simple_uppercase_mapping))));
TRY(generator.set("simple_lowercase_mapping", TRY(optional_code_point_to_string(casing.simple_lowercase_mapping))));
TRY(generator.set("simple_titlecase_mapping", TRY(optional_code_point_to_string(casing.simple_titlecase_mapping))));
TRY(generator.set("special_casing_start_index", TRY(first_index_to_string(casing.special_casing_indices))));
TRY(generator.set("special_casing_size", TRY(String::number(casing.special_casing_indices.size()))));
TRY(generator.set("case_folding_start_index", TRY(first_index_to_string(casing.case_folding_indices))));
TRY(generator.set("case_folding_size", TRY(String::number(casing.case_folding_indices.size()))));
generator.set("canonical_combining_class", TRY(String::number(casing.canonical_combining_class)));
generator.set("simple_uppercase_mapping", TRY(optional_code_point_to_string(casing.simple_uppercase_mapping)));
generator.set("simple_lowercase_mapping", TRY(optional_code_point_to_string(casing.simple_lowercase_mapping)));
generator.set("simple_titlecase_mapping", TRY(optional_code_point_to_string(casing.simple_titlecase_mapping)));
generator.set("special_casing_start_index", TRY(first_index_to_string(casing.special_casing_indices)));
generator.set("special_casing_size", TRY(String::number(casing.special_casing_indices.size())));
generator.set("case_folding_start_index", TRY(first_index_to_string(casing.case_folding_indices)));
generator.set("case_folding_size", TRY(String::number(casing.case_folding_indices.size())));
generator.append(R"~~~(
{ @canonical_combining_class@, @simple_uppercase_mapping@, @simple_lowercase_mapping@, @simple_titlecase_mapping@, @special_casing_start_index@, @special_casing_size@, @case_folding_start_index@, @case_folding_size@ },)~~~");
@ -1131,9 +1131,9 @@ static constexpr Array<CasingTable, @size@> @name@ { {)~~~");
};
auto append_property_table = [&](auto collection_snake, auto const& unique_properties) -> ErrorOr<void> {
TRY(generator.set("name", TRY(String::formatted("{}_unique_properties", collection_snake))));
TRY(generator.set("outer_size", TRY(String::number(unique_properties.size()))));
TRY(generator.set("inner_size", TRY(String::number(unique_properties[0].size()))));
generator.set("name", TRY(String::formatted("{}_unique_properties", collection_snake)));
generator.set("outer_size", TRY(String::number(unique_properties.size())));
generator.set("inner_size", TRY(String::number(unique_properties[0].size())));
generator.append(R"~~~(
static constexpr Array<Array<bool, @inner_size@>, @outer_size@> @name@ { {)~~~");
@ -1143,7 +1143,7 @@ static constexpr Array<Array<bool, @inner_size@>, @outer_size@> @name@ { {)~~~")
{ )~~~");
for (auto value : property_set) {
TRY(generator.set("value", TRY(String::formatted("{}", value))));
generator.set("value", TRY(String::formatted("{}", value)));
generator.append("@value@, ");
}
@ -1159,8 +1159,8 @@ static constexpr Array<Array<bool, @inner_size@>, @outer_size@> @name@ { {)~~~")
auto append_code_point_tables = [&](StringView collection_snake, auto const& tables, auto& append_unique_properties) -> ErrorOr<void> {
auto append_stage = [&](auto const& stage, auto name, auto type) -> ErrorOr<void> {
TRY(generator.set("name", TRY(String::formatted("{}_{}", collection_snake, name))));
TRY(generator.set("size", TRY(String::number(stage.size()))));
generator.set("name", TRY(String::formatted("{}_{}", collection_snake, name)));
generator.set("size", TRY(String::number(stage.size())));
generator.set("type", type);
generator.append(R"~~~(
@ -1174,7 +1174,7 @@ static constexpr Array<@type@, @size@> @name@ { {
if (values_in_current_row++ > 0)
generator.append(", ");
TRY(generator.set("value", TRY(String::number(value))));
generator.set("value", TRY(String::number(value)));
generator.append("@value@");
if (values_in_current_row == max_values_per_row) {