in common/rusty_leveldb_sgx/src/version.rs [416:442]
fn advance(&mut self) -> bool {
assert!(!self.files.is_empty());
if let Some(ref mut t) = self.current {
if t.advance() {
return true;
} else if self.current_ix >= self.files.len() - 1 {
// Already on last table; can't advance further.
return false;
}
// Load next table if current table is exhausted and we have more tables to go through.
self.current_ix += 1;
}
// Initialize iterator or load next table.
if let Ok(tbl) = self
.cache
.borrow_mut()
.get_table(self.files[self.current_ix].borrow().num)
{
self.current = Some(tbl.iter());
} else {
return false;
}
self.advance()
}