diff --git a/src/specctra/mesadata.rs b/src/specctra/mesadata.rs index 9f60583..90cd98c 100644 --- a/src/specctra/mesadata.rs +++ b/src/specctra/mesadata.rs @@ -72,17 +72,12 @@ impl SpecctraMesadata { /// layer-to-layer name mappings, net-to-net name mappings, and net class rules. /// pub fn from_pcb(pcb: &Pcb) -> Self { - let mut highest_layer: usize = 0; - let mut layer_layername = BiHashMap::new(); - - for layer in &pcb.structure.layers { - let index = if layer.property.is_some() { - layer.property.as_ref().unwrap().index - } else { - layer.name.parse().unwrap() - }; - layer_layername.insert(index, layer.name.clone()); - } + let mut layer_layername = BiHashMap::from_iter( + pcb.structure.layers + .iter() + .enumerate() + .map(|(index, layer)| (index, layer.name.clone())) + ); // keeping this as a separate iter pass because it might be moved into a different struct later? let net_netname = BiHashMap::from_iter(