#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::iter; #[derive(PartialEq, Debug)] struct Expensive; fn main() { let mut things = iter::repeat_with(|| Expensive); assert_eq!(Some(Expensive), things.next()); assert_eq!(Some(Expensive), things.next()); assert_eq!(Some(Expensive), things.next()); assert_eq!(Some(Expensive), things.next()); assert_eq!(Some(Expensive), things.next()); }