Iterators
Iteration goes through the for loop:
for (item : items) { @println("{}", item);}Iterable Types
Section titled “Iterable Types”| Type | Yields |
|---|---|
| integers | numbers |
| ranges | numbers |
[N]T, []T |
elements |
struct with Iterator |
next() values |
Containers like List iterate through .iter():
for (x : items.iter()) {}Custom Iterators
Section titled “Custom Iterators”A type iterates by implementing Iterator: next returns Some(element) or None when done.
struct Counter { cur: i32, end: i32,
pub fn until(end: i32) Self { Self { .cur = 0, .end = end } }}
implement Iterator : Counter { fn next(*self) Option[i32] { if (self.cur < self.end) { let output = self.cur; self.cur += 1;
return Option.Some(output); }
Option.None }}
fn main() { let counter = Counter.until(5);
for (i : counter) { @println("{}", i); }}