From 3367a178b8acc356ec020d5f51b411a448e97af0 Mon Sep 17 00:00:00 2001 From: logaritmisk Date: Fri, 19 Jan 2018 15:52:04 +0100 Subject: [PATCH] Performance boost? --- src/lib.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 3f19045..4156b04 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -253,10 +253,14 @@ impl<'a> ops::Sub<&'a BitSet> for &'a BitSet { fn sub(self, rhs: &'a BitSet) -> BitSet { let mut set = self.clone(); - for (key, value) in &rhs.blocks { - let block = set.blocks.entry(*key).or_insert(0); + for (key, block) in &mut set.blocks { + if let Some(value) = rhs.blocks.get(&key) { + // let n = block.count_ones(); - *block &= !value; + *block &= !value; + + // set.nbits += (block.count_ones() - n) as usize; + } } set.nbits = set.blocks.values().map(|block| block.count_ones()).sum::() as usize;