use std::iter::Peekable; pub struct Span { inner: Peekable>, } struct ConditionalIterator { f: F, } impl Iterator for ConditionalIterator { type Item = (); fn next(&mut self) -> Option { todo!() } }