Peekable — lookahead. FusedIterator — guaranteed termination.
Peekable:
FusedIterator:
1let v = vec![1, 2, 3];2let mut iter = v.iter().peekable();34if let Some(&&first) = iter.peek() {5 println!("First: {}", first);6}78// FusedIterator9let mut fused = v.iter().fuse();10while let Some(item) = fused.next() {11 println!("{}", item);12}
Key: Peekable for lookahead, FusedIterator for safe iteration.