Trait libreda_db::decorator::netlist::NetlistBaseDecorator
source · [−]pub trait NetlistBaseDecorator: Decorator where
Self::D: NetlistBase, {
Show 41 methods
fn d_template_pin(
&self,
pin_instance: &<Self::D as NetlistBase>::PinInstId
) -> <Self::D as NetlistBase>::PinId { ... }
fn d_pin_direction(&self, pin: &<Self::D as NetlistBase>::PinId) -> Direction { ... }
fn d_pin_name(
&self,
pin: &<Self::D as NetlistBase>::PinId
) -> <Self::D as HierarchyBase>::NameType { ... }
fn d_pin_by_name(
&self,
parent_circuit: &<Self::D as HierarchyBase>::CellId,
name: &str
) -> Option<<Self::D as NetlistBase>::PinId> { ... }
fn d_parent_cell_of_pin(
&self,
pin: &<Self::D as NetlistBase>::PinId
) -> <Self::D as HierarchyBase>::CellId { ... }
fn d_parent_of_pin_instance(
&self,
pin_inst: &<Self::D as NetlistBase>::PinInstId
) -> <Self::D as HierarchyBase>::CellInstId { ... }
fn d_pin_instance(
&self,
cell_inst: &<Self::D as HierarchyBase>::CellInstId,
pin: &<Self::D as NetlistBase>::PinId
) -> <Self::D as NetlistBase>::PinInstId { ... }
fn d_parent_cell_of_net(
&self,
net: &<Self::D as NetlistBase>::NetId
) -> <Self::D as HierarchyBase>::CellId { ... }
fn d_net_of_pin(
&self,
pin: &<Self::D as NetlistBase>::PinId
) -> Option<<Self::D as NetlistBase>::NetId> { ... }
fn d_net_of_pin_instance(
&self,
pin_instance: &<Self::D as NetlistBase>::PinInstId
) -> Option<<Self::D as NetlistBase>::NetId> { ... }
fn d_net_of_terminal(
&self,
terminal: &TerminalId<Self::D>
) -> Option<<Self::D as NetlistBase>::NetId> { ... }
fn d_net_zero(
&self,
parent_circuit: &<Self::D as HierarchyBase>::CellId
) -> <Self::D as NetlistBase>::NetId { ... }
fn d_net_one(
&self,
parent_circuit: &<Self::D as HierarchyBase>::CellId
) -> <Self::D as NetlistBase>::NetId { ... }
fn d_net_by_name(
&self,
parent_circuit: &<Self::D as HierarchyBase>::CellId,
name: &str
) -> Option<<Self::D as NetlistBase>::NetId> { ... }
fn d_net_name(
&self,
net: &<Self::D as NetlistBase>::NetId
) -> Option<<Self::D as HierarchyBase>::NameType> { ... }
fn d_for_each_pin<F>(
&self,
circuit: &<Self::D as HierarchyBase>::CellId,
f: F
)
where
F: FnMut(<Self::D as NetlistBase>::PinId),
{ ... }
fn d_each_pin_vec(
&self,
circuit: &<Self::D as HierarchyBase>::CellId
) -> Vec<<Self::D as NetlistBase>::PinId> { ... }
fn d_each_pin<'a>(
&'a self,
circuit: &<Self::D as HierarchyBase>::CellId
) -> Box<dyn Iterator<Item = <Self::D as NetlistBase>::PinId> + 'a> { ... }
fn d_for_each_pin_instance<F>(
&self,
circuit_inst: &<Self::D as HierarchyBase>::CellInstId,
f: F
)
where
F: FnMut(<Self::D as NetlistBase>::PinInstId),
{ ... }
fn d_each_pin_instance_vec(
&self,
circuit_instance: &<Self::D as HierarchyBase>::CellInstId
) -> Vec<<Self::D as NetlistBase>::PinInstId> { ... }
fn d_each_pin_instance<'a>(
&'a self,
circuit_instance: &<Self::D as HierarchyBase>::CellInstId
) -> Box<dyn Iterator<Item = <Self::D as NetlistBase>::PinInstId> + 'a> { ... }
fn d_each_external_net<'a>(
&'a self,
circuit_instance: &<Self::D as HierarchyBase>::CellInstId
) -> Box<dyn Iterator<Item = <Self::D as NetlistBase>::NetId> + 'a> { ... }
fn d_for_each_external_net<F>(
&self,
circuit_instance: &<Self::D as HierarchyBase>::CellInstId,
f: F
)
where
F: FnMut(<Self::D as NetlistBase>::NetId),
{ ... }
fn d_each_external_net_vec(
&self,
circuit_instance: &<Self::D as HierarchyBase>::CellInstId
) -> Vec<<Self::D as NetlistBase>::NetId> { ... }
fn d_for_each_internal_net<F>(
&self,
circuit: &<Self::D as HierarchyBase>::CellId,
f: F
)
where
F: FnMut(<Self::D as NetlistBase>::NetId),
{ ... }
fn d_each_internal_net_vec(
&self,
circuit: &<Self::D as HierarchyBase>::CellId
) -> Vec<<Self::D as NetlistBase>::NetId> { ... }
fn d_each_internal_net<'a>(
&'a self,
circuit: &<Self::D as HierarchyBase>::CellId
) -> Box<dyn Iterator<Item = <Self::D as NetlistBase>::NetId> + 'a> { ... }
fn d_num_internal_nets(
&self,
circuit: &<Self::D as HierarchyBase>::CellId
) -> usize { ... }
fn d_num_net_pins(&self, net: &<Self::D as NetlistBase>::NetId) -> usize { ... }
fn d_num_net_pin_instances(
&self,
net: &<Self::D as NetlistBase>::NetId
) -> usize { ... }
fn d_num_net_terminals(&self, net: &<Self::D as NetlistBase>::NetId) -> usize { ... }
fn d_num_pins(&self, circuit: &<Self::D as HierarchyBase>::CellId) -> usize { ... }
fn d_for_each_pin_of_net<F>(
&self,
net: &<Self::D as NetlistBase>::NetId,
f: F
)
where
F: FnMut(<Self::D as NetlistBase>::PinId),
{ ... }
fn d_each_pin_of_net_vec(
&self,
net: &<Self::D as NetlistBase>::NetId
) -> Vec<<Self::D as NetlistBase>::PinId> { ... }
fn d_each_pin_of_net<'a>(
&'a self,
net: &<Self::D as NetlistBase>::NetId
) -> Box<dyn Iterator<Item = <Self::D as NetlistBase>::PinId> + 'a> { ... }
fn d_for_each_pin_instance_of_net<F>(
&self,
net: &<Self::D as NetlistBase>::NetId,
f: F
)
where
F: FnMut(<Self::D as NetlistBase>::PinInstId),
{ ... }
fn d_each_pin_instance_of_net_vec(
&self,
net: &<Self::D as NetlistBase>::NetId
) -> Vec<<Self::D as NetlistBase>::PinInstId> { ... }
fn d_each_pin_instance_of_net<'a>(
&'a self,
net: &<Self::D as NetlistBase>::NetId
) -> Box<dyn Iterator<Item = <Self::D as NetlistBase>::PinInstId> + 'a> { ... }
fn d_for_each_terminal_of_net<F>(
&self,
net: &<Self::D as NetlistBase>::NetId,
f: F
)
where
F: FnMut(TerminalId<Self::D>),
{ ... }
fn d_each_terminal_of_net_vec(
&self,
net: &<Self::D as NetlistBase>::NetId
) -> Vec<TerminalId<Self::D>> { ... }
fn d_each_terminal_of_net<'a>(
&'a self,
net: &<Self::D as NetlistBase>::NetId
) -> Box<dyn Iterator<Item = TerminalId<Self::D>> + 'a> { ... }
}
Expand description
Define the same functions as NetlistBase
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.