From cd2a80be8f2b3c41fd66149dfdef32560a104ef2 Mon Sep 17 00:00:00 2001 From: Philippe-Cholet <44676486+Philippe-Cholet@users.noreply.github.com> Date: Fri, 26 Apr 2024 10:19:25 +0200 Subject: [PATCH] New private method `Powerset::increment_k` --- src/powerset.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/powerset.rs b/src/powerset.rs index 1b2b38540..019e2711f 100644 --- a/src/powerset.rs +++ b/src/powerset.rs @@ -42,6 +42,18 @@ where } } +impl Powerset { + /// Returns true if `k` has been incremented, false otherwise. + fn increment_k(&mut self) -> bool { + if self.combs.k() < self.combs.n() || self.combs.k() == 0 { + self.combs.reset(self.combs.k() + 1); + true + } else { + false + } + } +} + impl Iterator for Powerset where I: Iterator, @@ -52,8 +64,7 @@ where fn next(&mut self) -> Option { if let Some(elt) = self.combs.next() { Some(elt) - } else if self.combs.k() < self.combs.n() || self.combs.k() == 0 { - self.combs.reset(self.combs.k() + 1); + } else if self.increment_k() { self.combs.next() } else { None