{}
run-icon
main.rs
struct Fibonacci { a: u64, b: u64, } impl Fibonacci { fn new() -> Self { Fibonacci { a: 0, b: 1 } } } impl Iterator for Fibonacci { type Item = u64; fn next(&mut self) -> Option<u64> { let value = self.a; let tmp = self.a + self.b; self.a = self.b; self.b = tmp; Some(value) } } fn main() { let mut fib = Fibonacci::new(); while let Some(n) = fib.next() { if n >= 100 { break; } print!("{} ", n); } }
Output