#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::iter::Fuse; #[derive(Default)] struct Fourever; impl Iterator for Fourever { type Item = u32; fn next(&mut self) -> Option { Some(4) } } fn main() { let mut iter: Fuse = Default::default(); assert_eq!(iter.next(), Some(4)); }