aboutsummaryrefslogtreecommitdiff
path: root/src/string_immutable.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/string_immutable.zig')
-rw-r--r--src/string_immutable.zig12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/string_immutable.zig b/src/string_immutable.zig
index 8f3859a34..d393577fc 100644
--- a/src/string_immutable.zig
+++ b/src/string_immutable.zig
@@ -3187,6 +3187,18 @@ test "indexOfNeedsEscape" {
try std.testing.expectEqual(out.?, 48);
}
+pub fn indexOfCharZ(sliceZ: [:0]const u8, char: u8) ?u63 {
+ const ptr = bun.C.strchr(sliceZ.ptr, char) orelse return null;
+ const pos = @ptrToInt(ptr) - @ptrToInt(sliceZ.ptr);
+
+ if (comptime Environment.allow_assert)
+ std.debug.assert(@ptrToInt(sliceZ.ptr) >= @ptrToInt(ptr) and
+ @ptrToInt(ptr) < @ptrToInt(sliceZ.ptr + sliceZ.len) and
+ pos <= sliceZ.len);
+
+ return @truncate(u63, pos);
+}
+
pub fn indexOfChar(slice: []const u8, char: u8) ?u32 {
var remaining = slice;
if (remaining.len == 0)