diff --git a/src/iter.rs b/src/iter.rs index e8314a9..8f308ba 100644 --- a/src/iter.rs +++ b/src/iter.rs @@ -84,7 +84,7 @@ impl<'a, B: BTreeTrait> Drain<'a, B> { } } - fn none(tree: &'a mut BTree) -> Drain { + fn none(tree: &'a mut BTree) -> Drain<'a, B> { Self { current_path: Default::default(), done: true, diff --git a/src/lib.rs b/src/lib.rs index d6f97d0..a909c57 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1609,11 +1609,11 @@ impl BTree { }) } - pub fn drain(&mut self, range: Range) -> iter::Drain { + pub fn drain(&mut self, range: Range) -> iter::Drain<'_, B> { iter::Drain::new(self, Some(range.start), Some(range.end)) } - pub fn drain_by_query>(&mut self, range: Range) -> iter::Drain { + pub fn drain_by_query>(&mut self, range: Range) -> iter::Drain<'_, B> { let start = self.query::(&range.start); let end = self.query::(&range.end); iter::Drain::new(self, start, end) @@ -2650,7 +2650,7 @@ impl BTree { pub fn iter_with_filter<'a, R: Default + Copy + AddAssign + 'a>( &'a self, mut f: impl FnMut(&B::Cache) -> (bool, R) + 'a, - ) -> impl Iterator + '_ { + ) -> impl Iterator + 'a { let mut queue = VecDeque::new(); queue.push_back((self.root, R::default())); std::iter::from_fn(move || {