refactor(specctra/design): avoid double-lookup into net_outs

This commit is contained in:
Alain Emilia Anna Zscheile 2024-12-11 00:24:57 +01:00
parent fc9c8c3396
commit 1879d74fac
1 changed files with 18 additions and 21 deletions

View File

@ -3,7 +3,7 @@
//! exporting the session file //! exporting the session file
use geo::{point, Point, Rotate}; use geo::{point, Point, Rotate};
use std::collections::HashMap; use std::collections::{hash_map::Entry as HashMapEntry, HashMap};
use crate::{ use crate::{
board::{mesadata::AccessMesadata, Board}, board::{mesadata::AccessMesadata, Board},
@ -136,26 +136,23 @@ impl SpecctraDesign {
}, },
}; };
if let Some(net) = net_outs.get_mut(&net) { let net_out = match net_outs.entry(net) {
net.wire.push(wire); HashMapEntry::Occupied(occ) => occ.into_mut(),
} else { HashMapEntry::Vacant(vac) => vac.insert(structure::NetOut {
net_outs.insert( name: mesadata
net, .net_netname(net)
structure::NetOut { .ok_or_else(|| {
name: mesadata std::io::Error::new(
.net_netname(net) std::io::ErrorKind::InvalidData,
.ok_or_else(|| { format!("tried to reference invalid net ID {}", net),
std::io::Error::new( )
std::io::ErrorKind::InvalidData, })?
format!("tried to reference invalid net ID {}", net), .to_owned(),
) wire: Vec::new(),
})? via: Vec::new(),
.to_owned(), }),
wire: vec![wire], };
via: Vec::new(), net_out.wire.push(wire);
},
);
}
} }
} }