Expand description


Wrapper around the crate::traits::HierarchyBase, crate::traits::NetlistBase, crate::traits::LayoutBase and crate::traits::L2NBase traits which provide object like access methods. In contrast to crate::reference_access this wrapper takes ownership of the underlying data structure and hence also allows write access.


use libreda_db::prelude::*;
use libreda_db::rw_reference_access::*;

// Create some netlist/layout.
let mut chip = RwRefAccess::new(Chip::new());
let top = chip.create_cell("TOP".into());
let sub = chip.create_cell("SUB".into());
let sub_inst1 = top.create_instance(&sub, Some("inst1".into()));

// `top` can now be used like an object to navigate the cell hierarchy, layout and netlist.
for subcell in top.each_cell_instance() {
    println!("{} contains {:?} which is a {}", top.name(), subcell.name(), subcell.template().name());