diff options
-rw-r--r-- | src/bun.zig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/bun.zig b/src/bun.zig index f5231b72e..9854f7264 100644 --- a/src/bun.zig +++ b/src/bun.zig @@ -875,6 +875,18 @@ pub fn enumMap(comptime T: type, comptime args: anytype) (fn (T) []const u8) { return Map.get; } +pub fn ComptimeEnumMap(comptime T: type) type { + comptime { + var entries: [std.enums.values(T).len].{ string, T } = undefined; + var i: usize = 0; + inline for (std.enums.values(T)) |value| { + entries[i] = .{ .@"0" = @tagName(value), .@"1" = value }; + i += 1; + } + return ComptimeStringMap(T, entries); + } +} + /// Write 0's for every byte in Type /// Ignores default struct values. pub fn zero(comptime Type: type) Type { |