diff options
author | 2021-09-21 21:49:32 -0700 | |
---|---|---|
committer | 2021-09-21 21:49:32 -0700 | |
commit | 9c109b744f1729d1207f8f38cf1beae815e9690d (patch) | |
tree | 532a36f6e7064d403c3f0bacf0a923748314ade3 /src/string_immutable.zig | |
parent | 42c1d54b3f3890e97cd0d5665fcd95fe59b462cf (diff) | |
download | bun-9c109b744f1729d1207f8f38cf1beae815e9690d.tar.gz bun-9c109b744f1729d1207f8f38cf1beae815e9690d.tar.zst bun-9c109b744f1729d1207f8f38cf1beae815e9690d.zip |
Most of the ESM resolution algorithm (still untested)
Diffstat (limited to 'src/string_immutable.zig')
-rw-r--r-- | src/string_immutable.zig | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/string_immutable.zig b/src/string_immutable.zig index 7010cd538..4bfc707b7 100644 --- a/src/string_immutable.zig +++ b/src/string_immutable.zig @@ -23,10 +23,27 @@ pub inline fn indexAny(in: anytype, target: string) ?usize { return null; } +pub inline fn indexAnyComptime(target: string, comptime chars: string) ?usize { + for (target) |parent, i| { + inline for (chars) |char| { + if (char == parent) return i; + } + } + return null; +} + pub inline fn indexOfChar(self: string, char: u8) ?usize { return std.mem.indexOfScalar(@TypeOf(char), self, char); } +pub fn indexOfCharNeg(self: string, char: u8) i32 { + var i: u32 = 0; + while (i < self.len) : (i += 1) { + if (self[i] == value) return @intCast(i32, i); + } + return -1; +} + pub inline fn lastIndexOfChar(self: string, char: u8) ?usize { return std.mem.lastIndexOfScalar(u8, self, char); } |