while left < right {
let mid = left + (right - left) / 2;
self.seek_restart(mid)
- .and_then(|()| {
+ .map(|()| {
if self.cur_ent.as_ref().unwrap().key.as_slice() > key {
right = mid;
} else {
left = mid + 1;
}
- Some(())
})
.or_else(|| {
left = right; // breaks loop
self.index_iter.seek(key);
self.index_iter.next().and_then(|e| {
self.next_offset = usize::decode_var(e.value.as_slice())?.0;
- self.next_block().and_then(|_| {
+ self.next_block().map(|_| {
self.data_iter.as_mut().unwrap().seek(key);
- Some(())
})
});
}
pub fn compression(mut self, comp: Compression) -> Self {
self.comp = comp;
- self.meta.compression_algorithm = comp.into();
+ self.meta.compression_algorithm = comp;
self
}
let b = self.block.as_slice();
let cb = self.comp.compress(b)?;
self.written += self.out.write_varint(cb.len())?;
- self.written += self.out.write_fixedint(crc32c(&*cb))?;
- self.out.write_all(&*cb)?;
+ self.written += self.out.write_fixedint(crc32c(&cb))?;
+ self.out.write_all(&cb)?;
self.written += cb.len();
self.block.reset();
Ok(())