aboutsummaryrefslogtreecommitdiff
path: root/src/bun.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-01 02:17:53 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-01 02:19:11 -0800
commit9e6d39bae6e02d437a73684a574da358d1e743ee (patch)
tree9047150ce5ad18d7e13eed4b127b3f121d99f12a /src/bun.zig
parentf651f74f9d2ddb578aa2aa98f0146f17da087c23 (diff)
downloadbun-9e6d39bae6e02d437a73684a574da358d1e743ee.tar.gz
bun-9e6d39bae6e02d437a73684a574da358d1e743ee.tar.zst
bun-9e6d39bae6e02d437a73684a574da358d1e743ee.zip
[internal] Add more bindings
Diffstat (limited to '')
-rw-r--r--src/bun.zig21
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;
+}