From 623ed241d632c3de3eec6d927346f8c6fa26749d Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 15 Jun 2020 19:43:42 +0200 Subject: [PATCH] Small speed improvement --- src/skeleton.rs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/skeleton.rs b/src/skeleton.rs index d9b4610..3579a54 100644 --- a/src/skeleton.rs +++ b/src/skeleton.rs @@ -112,17 +112,9 @@ impl Index { } } - pub fn insert(&mut self, v: CachedAssertion) -> Events { - self.adjust(v, 1) - } - - pub fn remove(&mut self, v: CachedAssertion) -> Events { - self.adjust(v, -1) - } - - pub fn adjust(&mut self, outer_value: CachedAssertion, delta: bag::Count) -> Events { + pub fn insert(&mut self, outer_value: CachedAssertion) -> Events { let mut outputs = Vec::new(); - let net = self.all_assertions.change(outer_value.clone(), delta); + let net = self.all_assertions.change(outer_value.clone(), 1); match net { bag::Net::AbsentToPresent => { Modification::new( @@ -137,6 +129,16 @@ impl Index { }) .perform(&mut self.root); } + bag::Net::PresentToPresent => (), + _ => unreachable!(), + } + outputs + } + + pub fn remove(&mut self, outer_value: CachedAssertion) -> Events { + let mut outputs = Vec::new(); + let net = self.all_assertions.change(outer_value.clone(), -1); + match net { bag::Net::PresentToAbsent => { Modification::new( false, @@ -150,7 +152,8 @@ impl Index { }) .perform(&mut self.root); } - _ => () + bag::Net::PresentToPresent => (), + _ => unreachable!(), } outputs }