mirror of
https://github.com/rust-lang/cargo.git
synced 2025-09-28 11:20:36 +00:00
Refactoring to use Vacant
/Occupied
instead of remove/insert
This commit is contained in:
parent
8076f578a3
commit
438d005b2c
@ -1005,12 +1005,15 @@ impl Config {
|
||||
}
|
||||
|
||||
if let CV::Table(map, _) = value {
|
||||
let base_map = self.values_mut()?;
|
||||
for (k, v) in map {
|
||||
if let Some(mut base_map) = self.values_mut()?.remove(&k) {
|
||||
base_map.merge(v, true)?;
|
||||
self.values_mut()?.insert(k.into(), base_map);
|
||||
} else {
|
||||
self.values_mut()?.insert(k.into(), v);
|
||||
match base_map.entry(k) {
|
||||
Vacant(entry) => {
|
||||
entry.insert(v);
|
||||
}
|
||||
Occupied(mut entry) => {
|
||||
entry.get_mut().merge(v, true)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user