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}