}
// provided methods
- fn filter_seek<F>(&mut self, filter: F) -> impl Iter
+ fn filter_seek<F>(self, filter: F) -> impl Iter
where
F: FnMut(&Entry, &mut Vec<u8>) -> FilterSeekResult,
{
}
pub use FilterSeekResult::*;
-struct FilterSeek<'i, I: Iterator<Item = Entry>, F: FnMut(&Entry, &mut Vec<u8>) -> FilterSeekResult>
-{
- inner: &'i mut I,
+struct FilterSeek<I: Iterator<Item = Entry>, F: FnMut(&Entry, &mut Vec<u8>) -> FilterSeekResult> {
+ inner: I,
filter_func: F,
seek_key: Vec<u8>,
}
-impl<'i, I, F> Iterator for FilterSeek<'i, I, F>
+impl<I, F> Iterator for FilterSeek<I, F>
where
F: FnMut(&Entry, &mut Vec<u8>) -> FilterSeekResult,
I: Iter<Item = Entry>,
}
}
-impl<'i, I, F> Iter for FilterSeek<'i, I, F>
+impl<I, F> Iter for FilterSeek<I, F>
where
F: FnMut(&Entry, &mut Vec<u8>) -> FilterSeekResult,
I: Iter<Item = Entry>,
#[test]
fn test_iter_filter() {
- let mut ti = TestIter(0);
+ let ti = TestIter(0);
let v: Vec<Entry> = ti
.filter_seek(|e, k| {
let b = e.key[0];