Генерация типов в зиге (язык зиг)
Можно ли создать comptime
функция в zig, которая создаст новый тип структуры? Функция получит массив строк и массив типов. Строки - это имена последующих полей структуры.
1 ответ
Решение
Нет. Это уже давно предлагается на https://github.com/ziglang/zig/issues/383.
Теперь это реализовано как https://github.com/ziglang/zig/pull/6099.
const builtin = @import("std").builtin;
const A = @Type(.{
.Struct = .{
.layout = .Auto,
.fields = &[_]builtin.TypeInfo.StructField{
.{ .name = "one", .field_type = i32, .default_value = null, .is_comptime = false },
},
.decls = &[_]builtin.TypeInfo.Declaration{},
.is_tuple = false,
},
});
test "" {
const a: A = .{ .one = 25 };
}