diff --git a/src/lib.zig b/src/lib.zig index 57a3b3c2ea3f617872aa5b2d57a365038518afc7..e6fef2acb7524dfec8be854c411c31e00a09cfda 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -100,3 +100,12 @@ pub fn sliceToInt(comptime T: type, comptime E: type, slice: []const E) !T { } return n; } + +pub fn FieldType(comptime T: type, comptime field: std.meta.FieldEnum(T)) type { + inline for (std.meta.fields(T)) |item| { + if (comptime std.mem.eql(u8, item.name, @tagName(field))) { + return item.field_type; + } + } + unreachable; +}