diff options
author | Paul Masurel <paul.masurel@gmail.com> | 2017-05-25 22:54:27 +0900 |
---|---|---|
committer | Paul Masurel <paul.masurel@gmail.com> | 2017-05-25 23:49:54 +0900 |
commit | ac0b1a21eb5a23c594b0684ab4e3c9899eb82639 (patch) | |
tree | 0ec11ce04dfa5965fda044ed974b651bdcd0697c /src/termdict/merger.rs | |
parent | 6bbc789d841f783fb69a210ecb8554fb51677819 (diff) |
Term as a wrapper
Small changes
Plastic
Diffstat (limited to 'src/termdict/merger.rs')
-rw-r--r-- | src/termdict/merger.rs | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/termdict/merger.rs b/src/termdict/merger.rs index 77088cb..341fa06 100644 --- a/src/termdict/merger.rs +++ b/src/termdict/merger.rs @@ -6,7 +6,7 @@ use postings::TermInfo; use std::cmp::Ordering; use termdict::TermStreamer; use termdict::TermDictionary; -use fst::Streamer; +use schema::Term; pub struct HeapItem<'a, V> where V: 'a + BinarySerializable + Default @@ -128,6 +128,15 @@ impl<'a, V> TermMerger<'a, V> pub fn current_kvs(&self) -> &[HeapItem<'a, V>] { &self.current_streamers[..] } + + /// Iterates through terms + pub fn next(&mut self) -> Option<Term<&[u8]>> { + if self.advance() { + Some(Term::wrap(self.current_streamers[0].streamer.key())) + } else { + None + } + } } @@ -140,18 +149,3 @@ impl<'a> From<&'a [SegmentReader]> for TermMerger<'a, TermInfo> { .collect()) } } - -impl<'a, V> Streamer<'a> for TermMerger<'a, V> - where V: BinarySerializable + Default -{ - type Item = &'a [u8]; - - fn next(&'a mut self) -> Option<Self::Item> { - if self.advance() { - Some(self.current_streamers[0].streamer.key()) - } else { - None - } - - } -} |