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.zig17
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);
}