Trait libreda_db::decorator::layout::LayoutBaseDecorator
source · [−]pub trait LayoutBaseDecorator: Decorator where
Self::D: LayoutBase, {
Show 14 methods
fn d_dbu(&self) -> <Self::D as LayoutBase>::Coord { ... }
fn d_each_layer(
&self
) -> Box<dyn Iterator<Item = <Self::D as LayoutBase>::LayerId> + '_> { ... }
fn d_layer_info(
&self,
layer: &<Self::D as LayoutBase>::LayerId
) -> LayerInfo<<Self::D as HierarchyBase>::NameType> { ... }
fn d_find_layer(
&self,
index: u32,
datatype: u32
) -> Option<<Self::D as LayoutBase>::LayerId> { ... }
fn d_layer_by_name(
&self,
name: &str
) -> Option<<Self::D as LayoutBase>::LayerId> { ... }
fn d_bounding_box_per_layer(
&self,
cell: &<Self::D as HierarchyBase>::CellId,
layer: &<Self::D as LayoutBase>::LayerId
) -> Option<Rect<<Self::D as LayoutBase>::Coord>> { ... }
fn d_bounding_box(
&self,
cell: &<Self::D as HierarchyBase>::CellId
) -> Option<Rect<<Self::D as LayoutBase>::Coord>> { ... }
fn d_each_shape_id(
&self,
cell: &<Self::D as HierarchyBase>::CellId,
layer: &<Self::D as LayoutBase>::LayerId
) -> Box<dyn Iterator<Item = <Self::D as LayoutBase>::ShapeId> + '_> { ... }
fn d_for_each_shape<F>(
&self,
cell: &<Self::D as HierarchyBase>::CellId,
layer: &<Self::D as LayoutBase>::LayerId,
f: F
)
where
F: FnMut(&<Self::D as LayoutBase>::ShapeId, &Geometry<<Self::D as LayoutBase>::Coord>),
{ ... }
fn d_with_shape<F, R>(
&self,
shape_id: &<Self::D as LayoutBase>::ShapeId,
f: F
) -> R
where
F: FnMut(&<Self::D as LayoutBase>::LayerId, &Geometry<<Self::D as LayoutBase>::Coord>) -> R,
{ ... }
fn d_parent_of_shape(
&self,
shape_id: &<Self::D as LayoutBase>::ShapeId
) -> (<Self::D as HierarchyBase>::CellId, <Self::D as LayoutBase>::LayerId) { ... }
fn d_for_each_shape_recursive<F>(
&self,
cell: &<Self::D as HierarchyBase>::CellId,
layer: &<Self::D as LayoutBase>::LayerId,
f: F
)
where
F: FnMut(SimpleTransform<<Self::D as LayoutBase>::Coord>, &<Self::D as LayoutBase>::ShapeId, &Geometry<<Self::D as LayoutBase>::Coord>),
{ ... }
fn d_get_transform(
&self,
cell_inst: &<Self::D as HierarchyBase>::CellInstId
) -> SimpleTransform<<Self::D as LayoutBase>::Coord> { ... }
fn d_get_shape_property(
&self,
shape: &<Self::D as LayoutBase>::ShapeId,
key: &<Self::D as HierarchyBase>::NameType
) -> Option<PropertyValue> { ... }
}
Expand description
Define the same functions as LayoutBase
but just prepend a d_
to
avoid naming conflicts.
The default implementation just forwards the call to the base()
.
This allows to selectively re-implement some functions or fully delegate
the trait to an attribute of a struct.