use crate::prelude::*;
pub fn exec_for_ref<I, F>(iter: I, mut f: F)
where
I: IntoRefIterator,
F: FnMut(&I::Item),
{
let mut iter = iter.into_ref_iter();
while let Some(item) = iter.next() {
f(item);
}
}
pub fn exec_for_ref_kv<I, F>(iter: I, mut f: F)
where
I: IntoRefKvIterator,
F: FnMut((&I::K, &I::V)),
{
let mut iter = iter.into_ref_kv_iter();
while let Some(item) = iter.next() {
f(item);
}
}
pub fn exec_for_ref_mut<I, F>(iter: I, mut f: F)
where
I: IntoRefMutIterator,
F: FnMut(&mut I::Item),
{
let mut iter = iter.into_ref_mut_iter();
while let Some(item) = iter.next_mut() {
f(item);
}
}
pub fn exec_for_ref_mut_kv<I, F>(iter: I, mut f: F)
where
I: IntoRefMutKvIterator,
F: FnMut((&I::K, &mut I::V)),
{
let mut iter = iter.into_ref_mut_kv_iter();
while let Some(item) = iter.next_mut() {
f(item);
}
}