}
}
-impl<'a, S, F> Source for &'a DupsortFunc<S, F>
+impl<S, F> Source for DupsortFunc<S, F>
where
S: Source,
F: Fn(&Entry, &Entry) -> Ordering,
}
#[derive(Debug)]
-pub struct DupsortFuncIter<'a, I, F>
+struct DupsortFuncIter<'a, I, F>
where
I: Iter,
F: Fn(&Entry, &Entry) -> Ordering,
}
}
-impl<'a, S, F> Source for &'a MergeFunc<S, F>
+impl<S, F> Source for MergeFunc<S, F>
where
S: Source,
F: Fn(&mut Entry, &Entry) + Clone,
}
}
-pub struct MergeFuncIter<'a, I: Iter, F: Fn(&mut Entry, &Entry)> {
+struct MergeFuncIter<'a, I: Iter, F: Fn(&mut Vec<u8>, &Entry)> {
prev: Option<Entry>,
iter: I,
merge_func: &'a F,
});
assert_eq!(
- Vec::from_iter((&s).iter()),
+ Vec::from_iter(s.iter()),
(1u8..8)
.map(|n| Entry::new(vec![n], vec![n]))
.collect::<Vec<_>>()
fn test_merge() {
let range = 1..8;
let iters: Vec<_> = range.clone().into_iter().map(test_source).collect();
- let s = Merger::from(iters.iter());
+ let s = Merger::from(iters);
let mut v = Vec::<u8>::new();
for i in range {
v.extend(tnum(i))
}
}
- impl<'a> Source for &'a TestSource {
+ impl Source for TestSource {
fn iter(&self) -> impl Iter {
TestIter {
source: self,