summaryrefslogtreecommitdiffstats
path: root/src/common/bitpacker.rs
diff options
context:
space:
mode:
authorPaul Masurel <paul.masurel@gmail.com>2019-01-08 00:48:14 +0900
committerPaul Masurel <paul.masurel@gmail.com>2019-01-08 00:48:14 +0900
commitbeb4289ec29d55a7d81b10cf4af61b1fd5b10d29 (patch)
treed893b6327d1fca4daa70bffb95738f300eb05e07 /src/common/bitpacker.rs
parentbdd72e4683f08d0af78826033e70cfbbbc5b8d04 (diff)
Less unsafe
Diffstat (limited to 'src/common/bitpacker.rs')
-rw-r--r--src/common/bitpacker.rs38
1 files changed, 0 insertions, 38 deletions
diff --git a/src/common/bitpacker.rs b/src/common/bitpacker.rs
index e84fa15..7b5204e 100644
--- a/src/common/bitpacker.rs
+++ b/src/common/bitpacker.rs
@@ -104,31 +104,6 @@ where
let val_shifted = (val_unshifted_unmasked >> bit_shift) as u64;
val_shifted & mask
}
-
- /// Reads a range of values from the fast field.
- ///
- /// The range of values read is from
- /// `[start..start + output.len()[`
- pub fn get_range(&self, start: u32, output: &mut [u64]) {
- if self.num_bits == 0 {
- for val in output.iter_mut() {
- *val = 0u64;
- }
- } else {
- let data: &[u8] = &*self.data;
- let num_bits = self.num_bits;
- let mask = self.mask;
- let mut addr_in_bits = (start as usize) * num_bits;
- for output_val in output.iter_mut() {
- let addr = addr_in_bits >> 3;
- let bit_shift = addr_in_bits & 7;
- let val_unshifted_unmasked: u64 = LittleEndian::read_u64(&data[addr..]);
- let val_shifted = (val_unshifted_unmasked >> bit_shift) as u64;
- *output_val = val_shifted & mask;
- addr_in_bits += num_bits;
- }
- }
- }
}
#[cfg(test)]
@@ -166,17 +141,4 @@ mod test {
test_bitpacker_util(6, 14);
test_bitpacker_util(1000, 14);
}
-
- #[test]
- fn test_bitpacker_range() {
- let (bitunpacker, vals) = create_fastfield_bitpacker(100_000, 12);
- let buffer_len = 100;
- let mut buffer = vec![0u64; buffer_len];
- for start in vec![0, 10, 20, 100, 1_000] {
- bitunpacker.get_range(start as u32, &mut buffer[..]);
- for i in 0..buffer_len {
- assert_eq!(buffer[i], vals[start + i]);
- }
- }
- }
}