use delegate_attr::delegate; use std::vec; struct Iter(vec::IntoIter); #[delegate(self.0)] impl Iterator for Iter { type Item = u8; fn next(&mut self) -> Option {} fn count(self) -> usize {} fn size_hint(&self) -> (usize, Option) {} fn last(self) -> Option {} } fn main() { let iter = Iter(vec![1, 2, 4, 8].into_iter()); assert_eq!(iter.count(), 4); let iter = Iter(vec![1, 2, 4, 8].into_iter()); assert_eq!(iter.last(), Some(8)); let iter = Iter(vec![1, 2, 4, 8].into_iter()); assert_eq!(iter.sum::(), 15); }