diff options
Diffstat (limited to 'src/string_immutable.zig')
-rw-r--r-- | src/string_immutable.zig | 12 |
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) |