diff options
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); } |