About me
Hi!
I’m Kuba.
fn EnumFromStruct(S: type) type {
const EnumField = std.builtin.Type.EnumField;
var fields: []const EnumField = &.{};
for (@typeInfo(S).@"struct".fields, 0..) |f, i| {
fields = fields ++ .{EnumField{ .name = f.name, .value = i }};
}
return @Type(.{
.@"enum" = .{
.tag_type = std.math.IntFittingRange(0, fields.len),
.fields = fields,
.decls = &.{},
.is_exhaustive = true,
},
});
}