Skip to content

Commit 438d005

Browse files
committed
Refactoring to use Vacant/Occupied instead of remove/insert
1 parent 8076f57 commit 438d005

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/cargo/util/config/mod.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1005,12 +1005,15 @@ impl Config {
10051005
}
10061006

10071007
if let CV::Table(map, _) = value {
1008+
let base_map = self.values_mut()?;
10081009
for (k, v) in map {
1009-
if let Some(mut base_map) = self.values_mut()?.remove(&k) {
1010-
base_map.merge(v, true)?;
1011-
self.values_mut()?.insert(k.into(), base_map);
1012-
} else {
1013-
self.values_mut()?.insert(k.into(), v);
1010+
match base_map.entry(k) {
1011+
Vacant(entry) => {
1012+
entry.insert(v);
1013+
}
1014+
Occupied(mut entry) => {
1015+
entry.get_mut().merge(v, true)?;
1016+
}
10141017
}
10151018
}
10161019
}

0 commit comments

Comments
 (0)