#![allow(dead_code, deprecated, unused_variables, unused_mut)] #![feature(iter_intersperse)] #[derive(PartialEq, Debug)] struct NotClone(usize); fn main() { let v = [NotClone(0), NotClone(1), NotClone(2)]; let mut it = v.into_iter().intersperse_with(|| NotClone(99)); assert_eq!(it.next(), Some(NotClone(0))); assert_eq!(it.next(), Some(NotClone(99))); assert_eq!(it.next(), Some(NotClone(1))); assert_eq!(it.next(), Some(NotClone(99))); assert_eq!(it.next(), Some(NotClone(2))); assert_eq!(it.next(), None); }