difftreelog
fix modifying a property doesn't change consumed space
in: master
1 file changed
primitives/data-structs/src/lib.rsdiffbeforeafterboth1133 scope: PropertyScope,1133 scope: PropertyScope,1134 key: PropertyKey,1134 key: PropertyKey,1135 value: Self::Value,1135 value: Self::Value,1136 ) -> Result<(), PropertiesError>;1136 ) -> Result<Option<Self::Value>, PropertiesError>;113711371138 /// Try to set property with scope from iterator.1138 /// Try to set property with scope from iterator.1139 fn try_scoped_set_from_iter<I, KV>(1139 fn try_scoped_set_from_iter<I, KV>(1154 }1154 }115511551156 /// Try to set property.1156 /// Try to set property.1157 fn try_set(&mut self, key: PropertyKey, value: Self::Value) -> Result<(), PropertiesError> {1157 fn try_set(1158 &mut self,1159 key: PropertyKey,1160 value: Self::Value,1161 ) -> Result<Option<Self::Value>, PropertiesError> {1158 self.try_scoped_set(PropertyScope::None, key, value)1162 self.try_scoped_set(PropertyScope::None, key, value)1159 }1163 }116011641239 scope: PropertyScope,1243 scope: PropertyScope,1240 key: PropertyKey,1244 key: PropertyKey,1241 value: Self::Value,1245 value: Self::Value,1242 ) -> Result<(), PropertiesError> {1246 ) -> Result<Option<Self::Value>, PropertiesError> {1243 Self::check_property_key(&key)?;1247 Self::check_property_key(&key)?;124412481245 let key = scope.apply(key)?;1249 let key = scope.apply(key)?;1246 self.01250 self.01247 .try_insert(key, value)1251 .try_insert(key, value)1248 .map_err(|_| PropertiesError::PropertyLimitReached)?;1252 .map_err(|_| PropertiesError::PropertyLimitReached)12491250 Ok(())1251 }1253 }1252}1254}125312551307 scope: PropertyScope,1309 scope: PropertyScope,1308 key: PropertyKey,1310 key: PropertyKey,1309 value: Self::Value,1311 value: Self::Value,1310 ) -> Result<(), PropertiesError> {1312 ) -> Result<Option<Self::Value>, PropertiesError> {1311 let value_len = value.len();1313 let value_len = value.len();131213141313 if self.consumed_space as usize + value_len > self.space_limit as usize1315 if self.consumed_space as usize + value_len > self.space_limit as usize1316 return Err(PropertiesError::NoSpaceForProperty);1318 return Err(PropertiesError::NoSpaceForProperty);1317 }1319 }131813201319 self.map.try_scoped_set(scope, key, value)?;1321 let old_value = self.map.try_scoped_set(scope, key, value)?;132013221323 if old_value.is_none() {1321 self.consumed_space += value_len as u32;1324 self.consumed_space += value_len as u32;1325 }132213261323 Ok(())1327 Ok(old_value)1324 }1328 }1325}1329}13261330