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.

Required Associated Types

Inherit the types from HierarchyBase.

Provided Methods

Implementors