# fibonacci A Fibonacci generator written in Rust. It's generic for types that implement `num::Zero`, `num::One`, `num::CheckedAdd`, and `Clone`. There is no stipulation that the type be `num::Unsigned`, but the generator will never generate a negative number. The generator handles overflow by returning `None`, stopping the iterator. For example, `Fibonacci` will overflow after the ninety-second element, so the iterator will end after producing its ninety-second element. The following all hold true: ```rust assert_eq!(12, Fibonacci::::default().take(300).collect::>().len()); assert_eq!(23, Fibonacci::::default().take(300).collect::>().len()); assert_eq!(46, Fibonacci::::default().take(300).collect::>().len()); assert_eq!(92, Fibonacci::::default().take(300).collect::>().len()); ``` Note that `u128` will not work, as the `num` crate does not implement any traits for it.