id_stack, modifiable ui for struct based on type info!

This commit is contained in:
Krzosa Karol
2025-01-17 15:23:00 +01:00
parent d3c84fd666
commit a3e6730e0b
3 changed files with 328 additions and 48 deletions

View File

@@ -52,6 +52,23 @@ fn void ti_enum_write_value(void *p, i64 value, type_t *type) {
}
}
fn i64 ti_enum_next_value(void *p, i64 value, type_t *type) {
assert(type->kind == type_kind_enum);
i32 next_i = 0;
for (i32 i = 0; i < type->count; i += 1) {
type_member_t *it = type->members + i;
if (value == it->value) {
if (i + 1 < type->count) {
next_i = i + 1;
break;
}
}
}
type_member_t *tm = type->members + next_i;
return tm->value;
}
fn type_member_t *ti_get_member(s8_t name, type_t *type) {
for (i32 i = 0; i < type->count; i += 1) {
type_member_t *it = type->members + i;