From cffad465c51d9d33e2832f316a14af81ed34bb7d Mon Sep 17 00:00:00 2001 From: logaritmisk Date: Thu, 4 Jan 2018 10:31:18 +0100 Subject: [PATCH] New function to extend from another bitset. --- src/lib.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index a1b3ff2..e6c2dc4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,7 +34,7 @@ impl Hasher for BitHasher { type BitBuildHasher = BuildHasherDefault; type BitHashMap = HashMap; -type BitHashSet = HashSet; +// type BitHashSet = HashSet; type Block = u64; type Storage = BitHashMap; @@ -128,6 +128,18 @@ impl BitSet { Some(block) => (block & (1 << bit)) != 0, } } + + #[inline] + pub fn extend_from_bitset(&mut self, other: &Self) { + for (key, value) in &other.blocks { + *self.blocks.entry(*key).or_insert(0) |= value; + } + + self.nbits = self.blocks + .values() + .map(|block| block.count_ones() as usize) + .sum(); + } } impl Default for BitSet {