Trait libreda_db::decorator::hierarchy::HierarchyBaseDecorator
source · [−]pub trait HierarchyBaseDecorator: Decorator where
Self::D: HierarchyBase<NameType = Self::NameType, CellId = Self::CellId, CellInstId = Self::CellInstId>, {
type NameType;
type CellId;
type CellInstId;
Show 29 methods
fn d_cell_by_name(&self, name: &str) -> Option<Self::CellId> { ... }
fn d_cell_instance_by_name(
&self,
parent_cell: &Self::CellId,
name: &str
) -> Option<Self::CellInstId> { ... }
fn d_cell_name(&self, cell: &Self::CellId) -> Self::NameType { ... }
fn d_cell_instance_name(
&self,
cell_inst: &Self::CellInstId
) -> Option<Self::NameType> { ... }
fn d_parent_cell(&self, cell_instance: &Self::CellInstId) -> Self::CellId { ... }
fn d_template_cell(&self, cell_instance: &Self::CellInstId) -> Self::CellId { ... }
fn d_for_each_cell<F>(&self, f: F)
where
F: FnMut(Self::CellId),
{ ... }
fn d_each_cell_vec(&self) -> Vec<Self::CellId> { ... }
fn d_each_cell(&self) -> Box<dyn Iterator<Item = Self::CellId> + '_> { ... }
fn d_for_each_cell_instance<F>(&self, cell: &Self::CellId, f: F)
where
F: FnMut(Self::CellInstId),
{ ... }
fn d_each_cell_instance_vec(
&self,
cell: &Self::CellId
) -> Vec<Self::CellInstId> { ... }
fn d_each_cell_instance(
&self,
cell: &Self::CellId
) -> Box<dyn Iterator<Item = Self::CellInstId> + '_> { ... }
fn d_for_each_cell_dependency<F>(&self, cell: &Self::CellId, f: F)
where
F: FnMut(Self::CellId),
{ ... }
fn d_each_cell_dependency_vec(
&self,
cell: &Self::CellId
) -> Vec<Self::CellId> { ... }
fn d_each_cell_dependency(
&self,
cell: &Self::CellId
) -> Box<dyn Iterator<Item = Self::CellId> + '_> { ... }
fn d_num_cell_dependencies(&self, cell: &Self::CellId) -> usize { ... }
fn d_for_each_dependent_cell<F>(&self, cell: &Self::CellId, f: F)
where
F: FnMut(Self::CellId),
{ ... }
fn d_each_dependent_cell_vec(&self, cell: &Self::CellId) -> Vec<Self::CellId> { ... }
fn d_each_dependent_cell(
&self,
cell: &Self::CellId
) -> Box<dyn Iterator<Item = Self::CellId> + '_> { ... }
fn d_num_dependent_cells(&self, cell: &Self::CellId) -> usize { ... }
fn d_for_each_cell_reference<F>(&self, cell: &Self::CellId, f: F)
where
F: FnMut(Self::CellInstId),
{ ... }
fn d_each_cell_reference_vec(
&self,
cell: &Self::CellId
) -> Vec<Self::CellInstId> { ... }
fn d_each_cell_reference(
&self,
cell: &Self::CellId
) -> Box<dyn Iterator<Item = Self::CellInstId> + '_> { ... }
fn d_num_cell_references(&self, cell: &Self::CellId) -> usize { ... }
fn d_num_child_instances(&self, cell: &Self::CellId) -> usize { ... }
fn d_num_cells(&self) -> usize { ... }
fn d_get_chip_property(&self, key: &Self::NameType) -> Option<PropertyValue> { ... }
fn d_get_cell_property(
&self,
cell: &Self::CellId,
key: &Self::NameType
) -> Option<PropertyValue> { ... }
fn d_get_cell_instance_property(
&self,
inst: &Self::CellInstId,
key: &Self::NameType
) -> Option<PropertyValue> { ... }
}
Expand description
Define the same functions as HierarchyBase
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.