let vec = vec![0,1,2,3];
let iter = &mut vec.iter();
assert_eq!(iter.peekable().peek(), Some(&&0));
assert_eq!(iter.next(), Some(&1));
}
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=7bea6bb82861297e1cbc97326ed3beb9
В доке по peekable указано Ну и не может peekable получить элемент не поглотив его из оригинального итератора
Да, это понятно, но всё равно это прям очень неинтуитивно с точки зрения API imho.
понятия не имею как можно было бы сделать лучше
и плюс не было бы такой неочевидности
Обсуждают сегодня