Skip to content

Commit f268856

Browse files
committed
Generalize CoalesceCore to coalesce to a different type.
1 parent d081998 commit f268856

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/adaptors/mod.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -607,18 +607,18 @@ impl<I, J, F> Iterator for MergeBy<I, J, F>
607607
}
608608

609609
#[derive(Clone, Debug)]
610-
pub struct CoalesceCore<I>
610+
pub struct CoalesceCore<I, T>
611611
where I: Iterator
612612
{
613613
iter: I,
614-
last: Option<I::Item>,
614+
last: Option<T>,
615615
}
616616

617-
impl<I> CoalesceCore<I>
617+
impl<I, T> CoalesceCore<I, T>
618618
where I: Iterator
619619
{
620-
fn next_with<F>(&mut self, mut f: F) -> Option<I::Item>
621-
where F: FnMut(I::Item, I::Item) -> Result<I::Item, (I::Item, I::Item)>
620+
fn next_with<F>(&mut self, mut f: F) -> Option<T>
621+
where F: FnMut(T, I::Item) -> Result<T, (T, T)>
622622
{
623623
// this fuses the iterator
624624
let mut last = match self.last.take() {
@@ -652,7 +652,7 @@ impl<I> CoalesceCore<I>
652652
pub struct Coalesce<I, F>
653653
where I: Iterator
654654
{
655-
iter: CoalesceCore<I>,
655+
iter: CoalesceCore<I, I::Item>,
656656
f: F,
657657
}
658658

@@ -705,7 +705,7 @@ impl<I, F> Iterator for Coalesce<I, F>
705705
pub struct DedupBy<I, Pred>
706706
where I: Iterator
707707
{
708-
iter: CoalesceCore<I>,
708+
iter: CoalesceCore<I, I::Item>,
709709
dedup_pred: Pred,
710710
}
711711

0 commit comments

Comments
 (0)