/// An iterator adaptor to insert a particular value /// between each element of the adapted iterator. /// /// Iterator element type is `I::Item` /// /// This iterator is *fused*. /// /// See [`.intersperse()`](crate::Itertools::intersperse) for more information. pubtype Intersperse<I> = IntersperseWith<I, IntersperseElementSimple<<I as Iterator>::Item>>;
/// Create a new Intersperse iterator pubfn intersperse<I>(iter: I, elt: I::Item) -> Intersperse<I> where I: Iterator,
{
intersperse_with(iter, IntersperseElementSimple(elt))
}
impl<Item, F: FnMut()->Item> IntersperseElement<Item> for F { fn generate(&mutself) -> Item { self()
}
}
/// An iterator adaptor to insert a particular value created by a function /// between each element of the adapted iterator. /// /// Iterator element type is `I::Item` /// /// This iterator is *fused*. /// /// See [`.intersperse_with()`](crate::Itertools::intersperse_with) for more information. #[must_use = "iterator adaptors are lazy and do nothing unless consumed"] #[derive(Clone, Debug)] pubstruct IntersperseWith<I, ElemF> where I: Iterator,
{
element: ElemF,
iter: Fuse<I>,
peek: Option<I::Item>,
}
/// Create a new `IntersperseWith` iterator pubfn intersperse_with<I, ElemF>(iter: I, elt: ElemF) -> IntersperseWith<I, ElemF> where I: Iterator,
{ letmut iter = iter.fuse();
IntersperseWith {
peek: iter.next(),
iter,
element: elt,
}
}
fn size_hint(&self) -> (usize, Option<usize>) { // 2 * SH + { 1 or 0 } let has_peek = self.peek.is_some() as usize; let sh = self.iter.size_hint();
size_hint::add_scalar(size_hint::add(sh, sh), has_peek)
}
impl<I, ElemF> FusedIterator for IntersperseWith<I, ElemF> where I: Iterator,
ElemF: IntersperseElement<I::Item>
{}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.10Bemerkung:
(vorverarbeitet am 2026-06-19)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.