I have something that implements std::iter::Iterator and I want to know if there are > 0 elements. What is the standard way to do it? coun
I would write iter.next().is_some().
However, you need to be aware that doing this advances the iterator.
fn main() {
let scores = [1, 2, 3];
let mut iter = scores.iter();
println!("{}", iter.next().is_some()); // true
println!("{}", iter.next().is_some()); // true
println!("{}", iter.next().is_some()); // true
println!("{}", iter.next().is_some()); // false
}
In many cases I'd use Peekable:
fn main() {
let scores = [1, 2, 3];
let mut iter = scores.iter().peekable();
println!("{}", iter.peek().is_some()); // true
println!("{}", iter.peek().is_some()); // true
println!("{}", iter.peek().is_some()); // true
println!("{}", iter.peek().is_some()); // true
}
so a future reader can understand on sight
I'd add a method on iterator named is_empty.