From 3259d0d888e149685413659216cbc952436a9b3e Mon Sep 17 00:00:00 2001 From: Luuk Machielse Date: Fri, 10 Oct 2025 19:19:47 +0200 Subject: [PATCH] Added `Iterator(T).any` and `Iterator(T).all` --- src/root.zig | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/root.zig b/src/root.zig index de97cf0..cfb472f 100644 --- a/src/root.zig +++ b/src/root.zig @@ -111,6 +111,24 @@ pub fn Iterator(comptime Inner: type) type { return acc; } + pub fn any(self: Self, f: fn (Item) bool) bool { + var mutSelf = self; + while (mutSelf.next()) |v| { + if (f(v)) return true; + } + + return false; + } + + pub fn all(self: Self, f: fn (Item) bool) bool { + var mutSelf = self; + while (mutSelf.next()) |v| { + if (!f(v)) return false; + } + + return true; + } + pub fn count(self: Self) usize { return self.fold(usize, 0, struct { fn inc(i: usize, _: Item) usize {