Timed

Struct Timed 

Source
pub struct Timed<'a, N, Lib>{ /* private fields */ }
Expand description

Reference to STA engine in timed state.

Implementations§

Source§

impl<'a, N, Lib> Timed<'a, N, Lib>

Source

pub fn report_clock( &self, pin: TerminalId<N>, edge_polarity: RiseFall, ) -> Option<ClockId>

For testing only.

Source

pub fn report_critical_paths(&self, clock_id: ClockId, setup_hold: SetupHold)

Report longest or shortest paths.

Trait Implementations§

Source§

impl<'a, N, Lib> Debug for Timed<'a, N, Lib>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, N, Lib> Deref for Timed<'a, N, Lib>

Source§

type Target = SimpleSTA<N, Lib>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'b, N, Lib> HierarchyBase for Timed<'b, N, Lib>

Source§

type NameType = <N as HierarchyBase>::NameType

Type for names of cells, instances, etc.
Source§

fn num_dependent_cells(&self, cell: &Self::CellId) -> usize

Count all cells that are directly dependent on cell, i.e. contain an instance of cell.
Source§

fn get_cell_property( &self, cell: &Self::CellId, key: &Self::NameType, ) -> Option<PropertyValue>

Get a property of a cell.
Source§

fn cell_name(&self, cell: &Self::CellId) -> Self::NameType

Get the name of the cell.
Source§

fn template_cell(&self, cell_instance: &Self::CellInstId) -> Self::CellId

Get the ID of the template cell of this instance.
Source§

fn each_cell_reference( &self, cell: &Self::CellId, ) -> Box<dyn Iterator<Item = Self::CellInstId> + '_>

Iterate over all instances of this cell, i.e. instances that use this cell as a template.
Source§

fn num_cell_dependencies(&self, cell: &Self::CellId) -> usize

Count all cells that are dependencies of cell.
Source§

fn get_cell_instance_property( &self, inst: &Self::CellInstId, key: &Self::NameType, ) -> Option<PropertyValue>

Get a property of a cell instance.
Source§

fn cell_instance_name( &self, cell_inst: &Self::CellInstId, ) -> Option<Self::NameType>

Get the name of the cell instance.
Source§

fn each_cell_dependency<'a>( &'a self, cell: &Self::CellId, ) -> Box<dyn Iterator<Item = Self::CellId> + 'a>

Iterate over all cells that are instantiated in this cell.
Source§

fn each_dependent_cell<'a>( &'a self, cell: &Self::CellId, ) -> Box<dyn Iterator<Item = Self::CellId> + 'a>

Iterate over each cell that directly depends on cell.
Source§

fn num_cells(&self) -> usize

Get the number of cell templates.
Source§

fn each_cell_vec(&self) -> Vec<Self::CellId>

Get a Vec of all cell IDs in this netlist.
Source§

fn for_each_cell_instance<F>(&self, cell: &Self::CellId, f: F)
where F: FnMut(Self::CellInstId),

Call a function on each instance in this cell.
Source§

fn for_each_cell_dependency<F>(&self, cell: &Self::CellId, f: F)
where F: FnMut(Self::CellId),

Call a function for each cell that is a child of this cell.
Source§

fn for_each_cell<F>(&self, f: F)
where F: FnMut(Self::CellId),

Call a function on each cell of the netlist.
Source§

fn parent_cell(&self, cell_instance: &Self::CellInstId) -> Self::CellId

Get the ID of the parent cell of this instance.
Source§

fn each_cell_instance_vec(&self, cell: &Self::CellId) -> Vec<Self::CellInstId>

Get a Vec of the IDs of all instances in this cell.
Source§

fn cell_instance_by_name( &self, parent_cell: &Self::CellId, name: &str, ) -> Option<Self::CellInstId>

Find a cell instance by its name. Returns None if the name does not exist.
Source§

fn for_each_dependent_cell<F>(&self, cell: &Self::CellId, f: F)
where F: FnMut(Self::CellId),

Call a function for each cell that directly depends on cell.
Source§

fn for_each_cell_reference<F>(&self, cell: &Self::CellId, f: F)
where F: FnMut(Self::CellInstId),

Iterate over all instances of this cell, i.e. instances that use this cell as a template.
Source§

fn cell_by_name(&self, name: &str) -> Option<Self::CellId>

Find a cell by its name. Return the cell with the given name. Returns None if the cell does not exist.
Source§

fn get_chip_property(&self, key: &Self::NameType) -> Option<PropertyValue>

Get a property of the top-level chip data structure.
Source§

fn each_cell_reference_vec(&self, cell: &Self::CellId) -> Vec<Self::CellInstId>

Get a Vec with all cell instances referencing this cell.
Source§

fn each_cell_dependency_vec(&self, cell: &Self::CellId) -> Vec<Self::CellId>

Get a Vec of each cell that is a child of this cell.
Source§

fn each_dependent_cell_vec(&self, cell: &Self::CellId) -> Vec<Self::CellId>

Get a Vec of each cell that directly depends on cell.
Source§

fn num_child_instances(&self, cell: &Self::CellId) -> usize

Get the number of cell instances inside the cell.
Source§

fn num_cell_references(&self, cell: &Self::CellId) -> usize

Count all instantiations of cell.
Source§

fn each_cell(&self) -> Box<dyn Iterator<Item = Self::CellId> + '_>

Iterate over all cells.
Source§

fn each_cell_instance( &self, cell: &Self::CellId, ) -> Box<dyn Iterator<Item = Self::CellInstId> + '_>

Iterate over all instances in a cell.
Source§

impl<'a, N, Lib> HierarchyIds for Timed<'a, N, Lib>

Source§

type CellId = <N as HierarchyIds>::CellId

Cell/module identifier type.
Source§

type CellInstId = <N as HierarchyIds>::CellInstId

Cell instance identifier type.
Source§

impl<'b, N, Lib> L2NBase for Timed<'b, N, Lib>
where N: L2NBase, Lib: DelayBase + ConstraintBase,

Source§

fn shapes_of_net( &self, net_id: &Self::NetId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Iterate over all shapes that are marked to belong to the specified net.
Source§

fn get_pin_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::PinId>

Get the pin that belongs to the shape (if any).
Source§

fn get_net_of_shape(&self, shape_id: &Self::ShapeId) -> Option<Self::NetId>

Get the net of a shape.
Source§

fn shapes_of_pin( &self, pin_id: &Self::PinId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Iterate over all shapes that are part of the pin.
Source§

impl<'b, N, Lib> LayoutBase for Timed<'b, N, Lib>

Source§

fn dbu(&self) -> Self::Coord

Get the distance unit used in this layout in ‘pixels per micron’.
Source§

fn get_shape_property( &self, shape: &Self::ShapeId, key: &Self::NameType, ) -> Option<PropertyValue>

Get a property of a shape.
Source§

fn get_transform( &self, cell_inst: &Self::CellInstId, ) -> SimpleTransform<Self::Coord>

Get the geometric transform that describes the location of a cell instance relative to its parent.
Source§

fn for_each_shape<F>(&self, cell: &Self::CellId, layer: &Self::LayerId, f: F)
where F: FnMut(&Self::ShapeId, &Geometry<Self::Coord>),

Call a function for each shape on this layer.
Source§

fn parent_of_shape( &self, shape_id: &Self::ShapeId, ) -> (Self::CellId, Self::LayerId)

Get the parent cell and the layer of a shape as a (cell, layer) tuple.
Source§

fn shape_geometry(&self, shape_id: &Self::ShapeId) -> Geometry<Self::Coord>

Get a clone of the shape geometry.
Source§

fn bounding_box(&self, cell: &Self::CellId) -> Option<Rect<Self::Coord>>

Compute the bounding box of the cell over all layers. The bounding box is not defined if the cell is empty. In this case return None.
Source§

fn each_layer(&self) -> Box<dyn Iterator<Item = Self::LayerId> + '_>

Iterate over all defined layers.
Source§

fn for_each_shape_recursive<F>( &self, cell: &Self::CellId, layer: &Self::LayerId, f: F, )
where F: FnMut(SimpleTransform<Self::Coord>, &Self::ShapeId, &Geometry<Self::Coord>),

Call a function f for each shape of this cell and its sub cells. Along to the geometric shape f also gets a transformation as argument. The transformation describes the actual position of the geometric shape relative to the cell.
Source§

fn with_shape<F, R>(&self, shape_id: &Self::ShapeId, f: F) -> R
where F: FnMut(&Self::LayerId, &Geometry<Self::Coord>) -> R,

Access a shape by its ID.
Source§

fn shape_layer(&self, shape_id: &Self::ShapeId) -> Self::LayerId

Get the layer of a shape.
Source§

fn bounding_box_per_layer( &self, cell: &Self::CellId, layer: &Self::LayerId, ) -> Option<Rect<Self::Coord>>

Compute the bounding box of the shapes on one layer. The bounding box also includes all child cell instances.
Source§

fn layer_by_name(&self, name: &str) -> Option<Self::LayerId>

Find layer index by the name.
Source§

fn layer_info(&self, layer: &Self::LayerId) -> LayerInfo<Self::NameType>

Get the LayerInfo data structure for this layer.
Source§

fn each_shape_id( &self, cell: &Self::CellId, layer: &Self::LayerId, ) -> Box<dyn Iterator<Item = Self::ShapeId> + '_>

Iterate over the IDs of all shapes in the cell on a specific layer.
Source§

fn find_layer(&self, index: UInt, datatype: UInt) -> Option<Self::LayerId>

Find layer index by the (index, data type) tuple.
Source§

impl<'a, N, Lib> LayoutIds for Timed<'a, N, Lib>

Source§

type Area = <N as LayoutIds>::Area

Number type for areas. This is possibly another type then Coord for the following reasons: Read more
Source§

type ShapeId = <N as LayoutIds>::ShapeId

Shape identifier type.
Source§

type Coord = <N as LayoutIds>::Coord

Number type used for coordinates and distances.
Source§

type LayerId = <N as LayoutIds>::LayerId

Layer identifier type.
Source§

impl<'b, N, Lib> NetlistBase for Timed<'b, N, Lib>

Source§

fn each_pin_instance_vec( &self, circuit_instance: &Self::CellInstId, ) -> Vec<Self::PinInstId>

Get a Vec with the IDs of all pin instance of this circuit instance.
Source§

fn parent_of_pin_instance(&self, pin_inst: &Self::PinInstId) -> Self::CellInstId

Get the ID of the circuit instance that holds this pin instance.
Source§

fn each_internal_net<'a>( &'a self, circuit: &Self::CellId, ) -> Box<dyn Iterator<Item = Self::NetId> + 'a>

Iterate over all defined nets inside a circuit.
Source§

fn each_pin_of_net_vec(&self, net: &Self::NetId) -> Vec<Self::PinId>

Get a Vec with all pin IDs connected to this net.
Source§

fn net_zero(&self, parent_circuit: &Self::CellId) -> Self::NetId

Get the net of the logical constant zero.
Source§

fn for_each_pin_instance_of_net<F>(&self, net: &Self::NetId, f: F)
where F: FnMut(Self::PinInstId),

Call a function for each pin instance connected to this net.
Source§

fn each_pin_instance<'a>( &'a self, circuit_instance: &Self::CellInstId, ) -> Box<dyn Iterator<Item = Self::PinInstId> + 'a>

Iterate over all pin instances of a circuit.
Source§

fn net_of_pin(&self, pin: &Self::PinId) -> Option<Self::NetId>

Get the internal net attached to this pin.
Source§

fn template_pin(&self, pin_instance: &Self::PinInstId) -> Self::PinId

Get the ID of the template pin of this pin instance.
Source§

fn pin_instance( &self, cell_inst: &Self::CellInstId, pin: &Self::PinId, ) -> Self::PinInstId

Get the ID of a pin instance given the cell instance and the pin ID.
Source§

fn for_each_pin_of_net<F>(&self, net: &Self::NetId, f: F)
where F: FnMut(Self::PinId),

Call a function for each pin connected to this net.
Source§

fn each_pin_instance_of_net<'a>( &'a self, net: &Self::NetId, ) -> Box<dyn Iterator<Item = Self::PinInstId> + 'a>

Iterate over all pins of a net.
Source§

fn net_by_name( &self, parent_circuit: &Self::CellId, name: &str, ) -> Option<Self::NetId>

Find a net by its name inside the parent circuit. Returns None if no such net can be found.
Source§

fn each_pin<'a>( &'a self, circuit: &Self::CellId, ) -> Box<dyn Iterator<Item = Self::PinId> + 'a>

Iterate over all pins of a circuit.
Source§

fn each_pin_instance_of_net_vec( &self, net: &Self::NetId, ) -> Vec<Self::PinInstId>

Get a Vec with all pin instance IDs connected to this net.
Source§

fn each_pin_of_net<'a>( &'a self, net: &Self::NetId, ) -> Box<dyn Iterator<Item = Self::PinId> + 'a>

Iterate over all pins of a net.
Source§

fn for_each_internal_net<F>(&self, circuit: &Self::CellId, f: F)
where F: FnMut(Self::NetId),

Call a function for net of the circuit.
Source§

fn net_of_pin_instance( &self, pin_instance: &Self::PinInstId, ) -> Option<Self::NetId>

Get the external net attached to this pin instance.
Source§

fn each_external_net_vec( &self, circuit_instance: &Self::CellInstId, ) -> Vec<Self::NetId>

Get a vector of all external nets connected to the circuit instance. A net might appear more than once.
Source§

fn pin_by_name( &self, parent_circuit: &Self::CellId, name: &str, ) -> Option<Self::PinId>

Find a pin by its name. Returns None if no such pin can be found.
Source§

fn net_one(&self, parent_circuit: &Self::CellId) -> Self::NetId

Get the net of the logical constant one.
Source§

fn num_net_pin_instances(&self, net: &Self::NetId) -> usize

Get the number of pin instances that are connected to this net.
Source§

fn pin_name(&self, pin: &Self::PinId) -> Self::NameType

Get the name of the pin.
Source§

fn each_external_net<'a>( &'a self, circuit_instance: &Self::CellInstId, ) -> Box<dyn Iterator<Item = Self::NetId> + 'a>

Iterate over all external nets connected to the circuit instance. A net might appear more than once.
Source§

fn for_each_pin_instance<F>(&self, circuit_inst: &Self::CellInstId, f: F)
where F: FnMut(Self::PinInstId),

Call a function for each pin instance of the circuit instance.
Source§

fn parent_cell_of_net(&self, net: &Self::NetId) -> Self::CellId

Get the ID of the parent circuit of this net.
Source§

fn net_name(&self, net: &Self::NetId) -> Option<Self::NameType>

Get the name of the net.
Source§

fn each_pin_vec(&self, circuit: &Self::CellId) -> Vec<Self::PinId>

Get a Vec with the IDs of all pins of this circuit.
Source§

fn num_internal_nets(&self, circuit: &Self::CellId) -> usize

Return the number of nets defined inside a cell.
Source§

fn each_internal_net_vec(&self, circuit: &Self::CellId) -> Vec<Self::NetId>

Get a Vec with all nets in this circuit.
Source§

fn for_each_pin<F>(&self, circuit: &Self::CellId, f: F)
where F: FnMut(Self::PinId),

Call a function for each pin of the circuit.
Source§

fn num_net_pins(&self, net: &Self::NetId) -> usize

Get the number of pins that are connected to this net.
Source§

fn for_each_external_net<F>(&self, circuit_instance: &Self::CellInstId, f: F)
where F: FnMut(Self::NetId),

Iterate over all external nets connected to the circuit instance. A net might appear more than once.
Source§

fn pin_direction(&self, pin: &Self::PinId) -> Direction

Get the signal direction of the pin.
Source§

fn parent_cell_of_pin(&self, pin: &Self::PinId) -> Self::CellId

Get the ID of the parent circuit of this pin.
Source§

fn num_pins(&self, circuit: &Self::CellId) -> usize

Get the number of pins of a circuit.
Source§

fn num_net_terminals(&self, net: &Self::NetId) -> usize

Get the number of terminals that are connected to this net.
Source§

impl<'a, N, Lib> NetlistIds for Timed<'a, N, Lib>

Source§

type NetId = <N as NetlistIds>::NetId

Net identifier type. Uniquely identifies a net in the whole netlist.
Source§

type PinId = <N as NetlistIds>::PinId

Pin identifier type. Uniquely identifies a pin in the whole netlist.
Source§

type PinInstId = <N as NetlistIds>::PinInstId

Pin instance identifier type. Uniquely identifies a pin instance in the whole netlist. A pin instance is a pin of a circuit instance.
Source§

impl<'a, N, Lib> TimingQuery for Timed<'a, N, Lib>

Source§

type NetlistIds = N

Type which defines IDs of netlist components.
Source§

type ArrivalTime = <Lib as TimingBase>::Signal

Type for the actual arrival times.
Source§

type RequiredArrivalTime = <Lib as ConstraintBase>::RequiredSignal

Type for required arrival times.
Source§

type Slack = <Lib as ConstraintBase>::Slack

Type for delays (time difference) such as slack.
Source§

fn report_aat( &self, pin: TerminalId<N>, edge_polarity: RiseFall, ) -> Option<Self::ArrivalTime>

Report arrival time. Assumes prior call to update_timing if the netlist was modified. Might panic otherwise. Returns an Option because some it is possible that no arrival time is defined (for example for a floating part of the netlist which is not attached to a clock).
Source§

fn report_rat( &self, pin: TerminalId<N>, edge_polarity: RiseFall, ) -> Option<Self::RequiredArrivalTime>

Report required arrival time. Assumes prior call to update_timing if the netlist was modified. Might panic otherwise.
Source§

fn report_slack( &self, pin: TerminalId<N>, edge_polarity: RiseFall, ) -> Option<Self::Slack>

Report slack (arrival time - required arrival time). Assumes prior call to update_timing if the netlist was modified. Might panic otherwise.
Source§

fn report_timing(&self) -> Vec<()>

Report a list of worst paths.

Auto Trait Implementations§

§

impl<'a, N, Lib> Freeze for Timed<'a, N, Lib>

§

impl<'a, N, Lib> !RefUnwindSafe for Timed<'a, N, Lib>

§

impl<'a, N, Lib> Send for Timed<'a, N, Lib>
where N: Sync, <N as HierarchyIds>::CellId: Sync, Lib: Sync, <N as NetlistIds>::PinId: Sync, <N as NetlistIds>::PinInstId: Sync,

§

impl<'a, N, Lib> Sync for Timed<'a, N, Lib>
where N: Sync, <N as HierarchyIds>::CellId: Sync, Lib: Sync, <N as NetlistIds>::PinId: Sync, <N as NetlistIds>::PinInstId: Sync,

§

impl<'a, N, Lib> Unpin for Timed<'a, N, Lib>

§

impl<'a, N, Lib> !UnwindSafe for Timed<'a, N, Lib>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> HierarchyReferenceAccess for T
where T: HierarchyBase,

Source§

fn each_cell_ref(&self) -> Box<dyn Iterator<Item = CellRef<'_, Self>> + '_>

Iterate over all cell objects.
Source§

fn cell_ref(&self, cell_id: &Self::CellId) -> CellRef<'_, Self>

Get a cell object by its ID.
Source§

fn cell_instance_ref(&self, inst_id: &Self::CellInstId) -> CellInstRef<'_, Self>

Get a cell instance object by its ID.
Source§

impl<N> HierarchyUtil for N
where N: HierarchyBase,

Source§

fn is_top_level_cell(&self, cell: &Self::CellId) -> bool

Check if the cell is a top level cell. This is done by checking that no other cells have an instance of this cell.
Source§

fn is_leaf_cell(&self, cell: &Self::CellId) -> bool

Check if the cell is a leaf cell. This is done by checking that this cell contains no other cell instances.
Source§

fn each_top_level_cell(&self) -> Box<dyn Iterator<Item = Self::CellId> + '_>

Iterate over all top level cells.
Source§

fn each_leaf_cell(&self) -> Box<dyn Iterator<Item = Self::CellId> + '_>

Iterate over all leaf cells, i.e. cells which contain no other cells.
Source§

fn each_cell_bottom_to_top(&self) -> Box<dyn Iterator<Item = Self::CellId> + '_>

Iterate over topologically sorted cells (from leaf-cells to top-cells).
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> LayoutReferenceAccess for T
where T: LayoutBase,

Source§

fn shape_ref(&self, shape_id: &Self::ShapeId) -> ShapeRef<'_, Self>

Get a cell object by its ID.
Source§

fn layer_ref(&self, layer_id: &Self::LayerId) -> LayerRef<'_, Self>

Get a layer object by its ID.
Source§

fn each_layer_ref(&self) -> Box<dyn Iterator<Item = LayerRef<'_, Self>> + '_>

Iterate over all layers defined in this layout.
Source§

fn layer_ref_by_name(&self, name: &str) -> Option<LayerRef<'_, Self>>

Get a layer object by the layer name.
Source§

impl<T> NetlistReferenceAccess for T
where T: NetlistBase,

Source§

fn pin_ref(&self, pin: &Self::PinId) -> PinRef<'_, Self>

Get a reference to a pin from a pin ID.
Source§

fn pin_instance_ref(&self, id: &Self::PinInstId) -> PinInstRef<'_, Self>

Get a reference to a pin instance.
Source§

fn net_ref(&self, net: &Self::NetId) -> NetRef<'_, Self>

Get a reference to a net.
Source§

fn terminal_ref(&self, t: &TerminalId<Self>) -> TerminalRef<'_, Self>

Get a reference to a terminal.
Source§

impl<N> NetlistUtil for N
where N: NetlistBase,

Source§

fn net_of_terminal(&self, terminal: &TerminalId<Self>) -> Option<Self::NetId>

Get the net that is attached to this terminal.
Source§

fn for_each_terminal_of_net<F>(&self, net: &Self::NetId, f: F)
where F: FnMut(TerminalId<Self>),

Call a function for each terminal connected to this net.
Source§

fn each_terminal_of_net_vec(&self, net: &Self::NetId) -> Vec<TerminalId<Self>>

Get a Vec with all terminal IDs connected to this net.
Source§

fn each_terminal_of_net<'a>( &'a self, net: &Self::NetId, ) -> Box<dyn Iterator<Item = TerminalId<Self>> + 'a>

Iterate over all terminals of a net.
Source§

fn is_constant_net(&self, net: &Self::NetId) -> bool

Check if the net is either the constant LOW or HIGH.
Source§

fn nets_of_cell_instance( &self, inst: &Self::CellInstId, ) -> Box<dyn Iterator<Item = Self::NetId> + '_>

Get all nets that are connected to the circuit instance.
Source§

fn for_each_circuit_instance_of_net<F>(&self, net: &Self::NetId, f: F)
where F: FnMut(Self::CellInstId),

Visit all circuit instances connected to this net. An instance is touched not more than once.
Source§

fn each_circuit_instance_of_net_vec( &self, net: &Self::NetId, ) -> Vec<Self::CellInstId>

Iterate over all circuit instances connected to this net. An instance is touched not more than once.
Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Write the netlist in a human readable form.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<L> L2NBaseMT for L

Source§

impl<LN> L2NIds for LN
where LN: LayoutIds + NetlistIds,