seekable_iterator/
seekable_iterators.rs1use crate::{comparator::Comparator, seekable::Seekable};
2use crate::cursor::{CursorIterator, CursorLendingIterator, CursorPooledIterator};
3
4
5pub trait SeekableIterator<Key, Cmp>
10where
11 Key: ?Sized,
12 Cmp: ?Sized + Comparator<Key>,
13 Self: CursorIterator + Seekable<Key, Cmp>,
14{}
15
16impl<Key, Cmp, I> SeekableIterator<Key, Cmp> for I
17where
18 Key: ?Sized,
19 Cmp: ?Sized + Comparator<Key>,
20 I: CursorIterator + Seekable<Key, Cmp>,
21{}
22
23pub trait SeekableLendingIterator<Key, Cmp>
30where
31 Key: ?Sized,
32 Cmp: ?Sized + Comparator<Key>,
33 Self: CursorLendingIterator + Seekable<Key, Cmp>,
34{}
35
36impl<Key, Cmp, I> SeekableLendingIterator<Key, Cmp> for I
37where
38 Key: ?Sized,
39 Cmp: ?Sized + Comparator<Key>,
40 I: CursorLendingIterator + Seekable<Key, Cmp>,
41{}
42
43pub trait SeekablePooledIterator<Key, Cmp>
53where
54 Key: ?Sized,
55 Cmp: ?Sized + Comparator<Key>,
56 Self: CursorPooledIterator + Seekable<Key, Cmp>,
57{}
58
59impl<Key, Cmp, I> SeekablePooledIterator<Key, Cmp> for I
60where
61 Key: ?Sized,
62 Cmp: ?Sized + Comparator<Key>,
63 I: CursorPooledIterator + Seekable<Key, Cmp>,
64{}