Trait L2NBase

Source
pub trait L2NBase: LayoutBase + NetlistBase {
    // Required methods
    fn shapes_of_net(
        &self,
        net_id: &Self::NetId,
    ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>;
    fn shapes_of_pin(
        &self,
        pin_id: &Self::PinId,
    ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>;
    fn get_net_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::NetId>;
    fn get_pin_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::PinId>;
}
Expand description

Fused layout and netlist view. This trait makes the link between netlist elements and layout elements.

Required Methods§

Source

fn shapes_of_net( &self, net_id: &Self::NetId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Iterate over all shapes that are marked to belong to the specified net.

Source

fn shapes_of_pin( &self, pin_id: &Self::PinId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Iterate over all shapes that are part of the pin.

Source

fn get_net_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::NetId>

Get the net of a shape.

Source

fn get_pin_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::PinId>

Get the pin that belongs to the shape (if any).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<T> L2NBase for &T
where T: L2NBase,

Source§

fn get_net_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::NetId>

Source§

fn shapes_of_pin( &self, pin_id: &Self::PinId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn shapes_of_net( &self, net_id: &Self::NetId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn get_pin_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::PinId>

Source§

impl<T> L2NBase for &mut T
where T: L2NBase,

Source§

fn shapes_of_pin( &self, pin_id: &Self::PinId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn shapes_of_net( &self, net_id: &Self::NetId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn get_net_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::NetId>

Source§

fn get_pin_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::PinId>

Source§

impl<T> L2NBase for Box<T>
where T: L2NBase,

Source§

fn get_net_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::NetId>

Source§

fn shapes_of_net( &self, net_id: &Self::NetId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn shapes_of_pin( &self, pin_id: &Self::PinId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn get_pin_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::PinId>

Source§

impl<T> L2NBase for Rc<T>
where T: L2NBase,

Source§

fn shapes_of_pin( &self, pin_id: &Self::PinId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn shapes_of_net( &self, net_id: &Self::NetId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn get_net_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::NetId>

Source§

fn get_pin_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::PinId>

Source§

impl<T> L2NBase for Arc<T>
where T: L2NBase,

Source§

fn shapes_of_net( &self, net_id: &Self::NetId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn shapes_of_pin( &self, pin_id: &Self::PinId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Source§

fn get_net_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::NetId>

Source§

fn get_pin_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::PinId>

Implementors§

Source§

impl L2NBase for Chip<Coord>

Source§

impl<'b, N, U> L2NBase for Undo<'b, N, U>
where N: L2NBase,

Source§

impl<L: L2NBase> L2NBase for DBPerf<L>

Source§

impl<LN> L2NBase for RegionSearchAdapter<LN>
where LN: L2NBase, LN::Coord: PrimInt + Signed + Debug,