Skip to content

Commit e298ac2

Browse files
PR feedback
1 parent 919e72a commit e298ac2

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

utils/src/bitmap/roaring/container/bitmap.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,17 @@ impl Default for Bitmap {
4949

5050
impl From<&array::Array> for Bitmap {
5151
fn from(array: &array::Array) -> Self {
52-
let mut container = Self::new();
52+
let mut words = [0u64; WORDS];
5353
for value in array.iter() {
54-
container.insert(value);
54+
let word_idx = (value >> 6) as usize;
55+
let bit_idx = value & 63;
56+
words[word_idx] |= 1u64 << bit_idx;
57+
}
58+
Self {
59+
words,
60+
cardinality: array.len() as u32,
61+
run_count: count_runs(&words),
5562
}
56-
container
5763
}
5864
}
5965

utils/src/bitmap/roaring/container/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ pub mod bitmap;
3535
pub mod run;
3636

3737
#[cfg(not(feature = "std"))]
38-
use alloc::boxed::Box;
38+
use alloc::{boxed::Box, vec::Vec};
3939
pub use array::Array;
4040
pub use bitmap::Bitmap;
4141
use bytes::{Buf, BufMut};

0 commit comments

Comments
 (0)