Trait libreda_db::decorator::layout::LayoutEditDecorator
source · [−]pub trait LayoutEditDecorator: MutDecorator where
Self::D: LayoutEdit, {
fn d_set_dbu(&mut self, dbu: <Self::D as LayoutBase>::Coord) { ... }
fn d_create_layer(
&mut self,
index: UInt,
datatype: UInt
) -> <Self::D as LayoutBase>::LayerId { ... }
fn d_create_layer_with_id(
&mut self,
layer_id: <Self::D as LayoutBase>::LayerId,
index: UInt,
datatype: UInt
) -> Result<(), ()> { ... }
fn d_set_layer_name(
&mut self,
layer: &<Self::D as LayoutBase>::LayerId,
name: Option<<Self::D as HierarchyBase>::NameType>
) -> Option<<Self::D as HierarchyBase>::NameType> { ... }
fn d_insert_shape(
&mut self,
parent_cell: &<Self::D as HierarchyBase>::CellId,
layer: &<Self::D as LayoutBase>::LayerId,
geometry: Geometry<<Self::D as LayoutBase>::Coord>
) -> <Self::D as LayoutBase>::ShapeId { ... }
fn d_remove_shape(
&mut self,
shape_id: &<Self::D as LayoutBase>::ShapeId
) -> Option<Geometry<<Self::D as LayoutBase>::Coord>> { ... }
fn d_replace_shape(
&mut self,
shape_id: &<Self::D as LayoutBase>::ShapeId,
geometry: Geometry<<Self::D as LayoutBase>::Coord>
) -> Geometry<<Self::D as LayoutBase>::Coord> { ... }
fn d_set_transform(
&mut self,
cell_inst: &<Self::D as HierarchyBase>::CellInstId,
tf: SimpleTransform<<Self::D as LayoutBase>::Coord>
) { ... }
fn d_set_shape_property(
&mut self,
shape: &<Self::D as LayoutBase>::ShapeId,
key: <Self::D as HierarchyBase>::NameType,
value: PropertyValue
) { ... }
}
Expand description
Define the same functions as LayoutEdit
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.