in common/rusty_leveldb_sgx/src/merging_iter.rs [106:136]
fn find(&mut self, direction: SL) {
if self.iters.len() == 0 {
// Iterator stays invalid.
return;
}
let ord;
if direction == SL::Smallest {
ord = Ordering::Less;
} else {
ord = Ordering::Greater;
}
let mut next_ix = 0;
let (mut current, mut smallest, mut valscratch) = (vec![], vec![], vec![]);
for i in 1..self.iters.len() {
if self.iters[i].current(&mut current, &mut valscratch) {
if self.iters[next_ix].current(&mut smallest, &mut valscratch) {
if self.cmp.cmp(¤t, &smallest) == ord {
next_ix = i;
}
} else {
next_ix = i;
}
}
}
self.current = Some(next_ix);
}