Trait libreda_db::l2n::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).

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

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

source§

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

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§

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 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 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_pin_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::PinId>

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§

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 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 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_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§

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> + '_>

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,