From: Chris Mikkelson Date: Mon, 2 Sep 2024 05:40:52 +0000 (-0500) Subject: block_builder: remove last bit of custom varint code X-Git-Url: https://git.mikk.net/?a=commitdiff_plain;h=240c894e6def8a3150c77bb4f8fc97d595130a2e;p=mtbl-rs block_builder: remove last bit of custom varint code --- diff --git a/src/writer/block_builder.rs b/src/writer/block_builder.rs index 70b9761..8789fad 100644 --- a/src/writer/block_builder.rs +++ b/src/writer/block_builder.rs @@ -1,3 +1,4 @@ +use integer_encoding::VarIntWriter; use std::mem::size_of; pub struct BlockBuilder { @@ -22,19 +23,6 @@ impl Default for BlockBuilder { } } -fn varint_append(v: &mut Vec, mut i: usize) { - loop { - let b: u8 = i as u8 & 0x7f; - i >>= 7; - if i > 0 { - v.push(b | 0x80); - } else { - v.push(b); - break; - } - } -} - impl BlockBuilder { pub(crate) fn add(&mut self, key: &[u8], val: &[u8]) { if self.count > 0 && self.count % self.restart_interval == 0 { @@ -50,9 +38,9 @@ impl BlockBuilder { .count(); let key_unshared = key.len() - key_shared; self.data.reserve(3 * 5 + key_unshared + val.len()); - varint_append(&mut self.data, key_shared); - varint_append(&mut self.data, key_unshared); - varint_append(&mut self.data, val.len()); + self.data.write_varint(key_shared).unwrap(); + self.data.write_varint(key_unshared).unwrap(); + self.data.write_varint(val.len()).unwrap(); self.data.extend_from_slice(&key[key_shared..]); self.data.extend_from_slice(val); self.count += 1;