changed TomlValue.value to anonymous union

This commit is contained in:
2025-11-27 01:32:34 +05:00
parent 711cc70b68
commit 6978bb2afe
7 changed files with 47 additions and 47 deletions

View File

@@ -14,32 +14,32 @@ Result(Table*) toml_walk_table_path(TomlParser* parser, TomlTable* table,
if (is_array) {
u64 i = 0;
for (; i < key_path->len - 1; i++) {
str part = *key_path->data[i].value.s;
str part = *key_path->data[i].s;
TomlValue* t = TomlTable_get(real_table, part);
if (t == NULL) {
if (create_if_not_exist) {
TomlValue new_table_value = TomlValue_new_table();
TomlTable_set(real_table, part, new_table_value);
real_table = new_table_value.value.table;
real_table = new_table_value.table;
} else {
Return RESULT_ERROR_CODE_FMT(TLIBTOML, TLIBTOML_ERR_SYNTAX,
"%s:%d:%d: not found key '" FMT_str "'",
parser->filename, parser->lineno, parser->colno, part.len, part.data);
}
} else {
real_table = t->value.table;
real_table = t->table;
}
}
str part = *key_path->data[i].value.s;
str part = *key_path->data[i].s;
TomlValue* t = TomlTable_get(real_table, part);
if (t == NULL) {
if (create_if_not_exist) {
TomlValue array_value = TomlValue_new_array();
TomlValue new_table_value = TomlValue_new_table();
TomlArray_append(array_value.value.array, new_table_value);
TomlArray_append(array_value.array, new_table_value);
TomlTable_set(real_table, part, array_value);
real_table = new_table_value.value.table;
real_table = new_table_value.table;
} else {
Return RESULT_ERROR_CODE_FMT(TLIBTOML, TLIBTOML_ERR_SYNTAX,
"%s:%d:%d: not found key '" FMT_str "'",
@@ -53,18 +53,18 @@ Result(Table*) toml_walk_table_path(TomlParser* parser, TomlTable* table,
}
TomlValue new_table_value = TomlValue_new_table();
TomlArray_append(t->value.array, new_table_value);
real_table = new_table_value.value.table;
TomlArray_append(t->array, new_table_value);
real_table = new_table_value.table;
}
} else {
for (u64 i = 0; i < key_path->len; i++) {
str part = *key_path->data[i].value.s;
str part = *key_path->data[i].s;
TomlValue* t = TomlTable_get(real_table, part);
if (t == NULL) {
if (create_if_not_exist) {
TomlValue new_table_value = TomlValue_new_table();
TomlTable_set(real_table, part, new_table_value);
real_table = new_table_value.value.table;
real_table = new_table_value.table;
} else {
Return RESULT_ERROR_CODE_FMT(TLIBTOML, TLIBTOML_ERR_SYNTAX,
"%s:%d:%d: not found key '" FMT_str "'",
@@ -72,9 +72,9 @@ Result(Table*) toml_walk_table_path(TomlParser* parser, TomlTable* table,
}
} else {
if (t->type == TLIBTOML_ARRAY) {
real_table = t->value.array->data[t->value.array->len - 1].value.table;
real_table = t->array->data[t->array->len - 1].table;
} else if (t->type == TLIBTOML_TABLE) {
real_table = t->value.table;
real_table = t->table;
}
}
}