reuler/utils.rs
1pub struct Fibonacci {
2 pub curr: usize,
3 pub next: usize,
4}
5
6// Implement `Iterator` for `Fibonacci`.
7impl Iterator for Fibonacci {
8 type Item = usize;
9
10 // Define how to compute the next step.
11 fn next(&mut self) -> Option<Self::Item> {
12 let current = self.curr;
13
14 self.curr = self.next;
15 self.next = current + self.next;
16
17 Some(current)
18 }
19}