From a42eb98daba8d96a58b12da08c8ad879da351955 Mon Sep 17 00:00:00 2001 From: Michael Krasnitski Date: Thu, 22 Feb 2024 23:24:49 -0500 Subject: Cleaner zero-len condition --- rust/src/operand_iter.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'rust/src') diff --git a/rust/src/operand_iter.rs b/rust/src/operand_iter.rs index ba2bce7c..eca92cf3 100644 --- a/rust/src/operand_iter.rs +++ b/rust/src/operand_iter.rs @@ -13,10 +13,12 @@ pub struct OperandIter { impl OperandIter { pub(crate) fn new(function: &F, idx: usize, number: usize) -> Self { + // Zero-length lists immediately finish iteration + let next_iter_idx = if number > 0 { Some(idx) } else { None }; Self { function: function.to_owned(), remaining: number, - next_iter_idx: Some(idx), + next_iter_idx, current_iter: OperandIterInner::empty(), } } @@ -45,8 +47,6 @@ impl Iterator for OperandIter { if let Some(item) = self.current_iter.next() { self.remaining -= 1; Some(item) - } else if self.remaining == 0 { - None // Only reached if initial length is 0 } else { // Will short-circuit and return `None` once iter is exhausted let iter_idx = self.next_iter_idx?; -- cgit v1.3.1