diff options
author | 2023-01-01 02:17:53 -0800 | |
---|---|---|
committer | 2023-01-01 02:19:11 -0800 | |
commit | 9e6d39bae6e02d437a73684a574da358d1e743ee (patch) | |
tree | 9047150ce5ad18d7e13eed4b127b3f121d99f12a /src/bun.zig | |
parent | f651f74f9d2ddb578aa2aa98f0146f17da087c23 (diff) | |
download | bun-9e6d39bae6e02d437a73684a574da358d1e743ee.tar.gz bun-9e6d39bae6e02d437a73684a574da358d1e743ee.tar.zst bun-9e6d39bae6e02d437a73684a574da358d1e743ee.zip |
[internal] Add more bindings
Diffstat (limited to '')
-rw-r--r-- | src/bun.zig | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/bun.zig b/src/bun.zig index 89ae31f4b..2ea39b2b9 100644 --- a/src/bun.zig +++ b/src/bun.zig @@ -735,3 +735,24 @@ pub const which = @import("./which.zig").which; pub const json = @import("./json_parser.zig"); pub const JSAst = @import("./js_ast.zig"); pub const bit_set = @import("./install/bit_set.zig"); + +pub fn enumMap(comptime T: type, comptime args: anytype) (fn (T) []const u8) { + const Map = struct { + pub fn get(input: T) []const u8 { + // https://github.com/ziglang/zig/issues/14145 + // https://github.com/ziglang/zig/issues/12765 + const labels = comptime brk: { + var vabels_ = std.enums.EnumArray(T, []const u8).initFill(""); + @setEvalBranchQuota(99999); + inline for (args) |field| { + vabels_.set(field.@"0", field.@"1"); + } + break :brk vabels_; + }; + + return labels.get(input); + } + }; + + return Map.get; +} |