The Iterator Trait and Protocol
The Iterator Trait and Protocol
In Rust, iterators are lazy sequences that produce values on demand via the Iterator trait:
fn main() {
let v = vec![1, 2, 3];
let mut iter = v.iter();
assert_eq!(iter.next(), Some(&1));
assert_eq!(iter.next(), Some(&2));
assert_eq!(iter.next(), Some(&3));
assert_eq!(iter.next(), None);
}