summaryrefslogtreecommitdiffstats
path: root/src/termdict/merger.rs
diff options
context:
space:
mode:
authorPaul Masurel <paul.masurel@gmail.com>2017-05-25 22:54:27 +0900
committerPaul Masurel <paul.masurel@gmail.com>2017-05-25 23:49:54 +0900
commitac0b1a21eb5a23c594b0684ab4e3c9899eb82639 (patch)
tree0ec11ce04dfa5965fda044ed974b651bdcd0697c /src/termdict/merger.rs
parent6bbc789d841f783fb69a210ecb8554fb51677819 (diff)
Term as a wrapper
Small changes Plastic
Diffstat (limited to 'src/termdict/merger.rs')
-rw-r--r--src/termdict/merger.rs26
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
- }
-
- }
-}