use super::Peek;
pub fn advance_while<Item>(
iter: &mut (impl Iterator<Item = Item> + Peek<Item = Item>),
mut cond: impl FnMut(Item) -> bool,
) {
while let Some(item) = iter.peek() {
if !cond(item) {
break;
}
iter.next();
}
}
pub fn next_if<Item>(
iter: &mut (impl Iterator<Item = Item> + Peek<Item = Item>),
mut cond: impl FnMut(Item) -> bool,
) -> Option<Item> {
if let Some(item) = iter.peek() {
if cond(item) {
return iter.next();
}
}
None
}