Expand description

Traits for netlist data types.

Instead of putting a netlist data structure into the center of the world, this data base concentrates on the way how a netlist can be accessed and modified. The basic necessary operations are defined in the [NetlistBase'] trait and in the [NetlistEdit`] trait.

More complex operations on netlist are provided by the NetlistUtil and NetlistEditUtil traits.


pub use crate::traits::HierarchyBase;
pub use crate::traits::HierarchyEdit;


Most basic trait for traversing a netlist. A netlist extends the HierarchyBase and hence is hierarchical. NetlistBase extends the components of the hierarchy with pins and nets. Each cell can have pins. Each cell instance has pin instances that correspond one-to-one to the pins of the template cell. Cells can contain nets. Each pin and each pin instance can be connected to one or zero nets. A net can be connected to an arbitrary number of pins and pin instances.

Trait for netlists that support editing.

Additional requirement that all ID types are Send + Sync as needed for multithreading