diff --git a/src/indexOfSlice.zig b/src/indexOfSlice.zig new file mode 100644 index 0000000000000000000000000000000000000000..7d065eaa282b39e4234927a75cb9d40953bd649f --- /dev/null +++ b/src/indexOfSlice.zig @@ -0,0 +1,19 @@ +const std = @import("std"); +const string = []const u8; +const extras = @import("./lib.zig"); + +pub fn indexOfSlice(comptime T: type, haystack: []const []const T, needle: []const T) ?usize { + for (haystack, 0..) |item, i| { + if (std.mem.eql(u8, item, needle)) { + return i; + } + } + return null; +} + +test { + try std.testing.expect(indexOfSlice(u8, &.{ "a", "b", "c", "d" }, "b") == 1); +} +test { + try std.testing.expect(indexOfSlice(u8, &.{}, "b") == null); +} diff --git a/src/lib.zig b/src/lib.zig index 3caa23f44390d7f84fc827bf445b6f2ea915450d..f5881844952bf91c53a2cb4ced03168e2ec597a1 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -99,3 +99,4 @@ pub usingnamespace @import("./isZigString.zig"); pub usingnamespace @import("./isIndexable.zig"); pub usingnamespace @import("./isSlice.zig"); pub usingnamespace @import("./matchesNone.zig"); +pub usingnamespace @import("./indexOfSlice.zig");