slang::netlist::DriverMap struct

Map driven ranges of a particular symbol to driver lists. Each interval maps to a handle that is used to look up the actual DriverList that is managed separately by an ExternalManager.

Public types

using Handle = ExternalManager<DriverList>::Handle
using IntervalMapType = IntervalMap<uint32_t, Handle, 8>
using AllocatorType = IntervalMapType::allocator_type

Public functions

auto clone(AllocatorType& alloc) const -> auto
Create a deep copy of this DriverMap.
auto newDriverList() -> Handle
Create a DriverList and return its handle.
auto getDriverList(Handle handle) -> DriverList&
Get the driver list for the specified handle.
auto getDriverList(Handle handle) const -> DriverList const&
Get the driver list for the specified handle.
void insert(DriverBitRange bounds, DriverListHandle handle, AllocatorType& alloc)
Insert a new interval mapping to the specified driver list handle.
auto begin() -> typename IntervalMapType::iterator
Return an iterator to the beginning of the driver map.
auto begin() const -> typename IntervalMapType::const_iterator
Return an iterator to the beginning of the driver map.
auto end() -> typename IntervalMapType::iterator
Return an iterator to the end of the driver map.
auto end() const -> typename IntervalMapType::const_iterator
Return an iterator to the end of the driver map.
auto find(DriverBitRange bounds) -> typename IntervalMapType::overlap_iterator
Return an iterator to all intervals that overlap the specified bounds.
auto empty() const -> bool
Check whether the driver map is empty.
void erase(typename IntervalMapType::overlap_iterator it, AllocatorType& alloc)
Erase the interval at the specified iterator position.
void erase(DriverListHandle handle)
Erase the driver list with the specified handle.

Public variables

IntervalMapType driverIntervals
Map driven ranges of a particular symbol to driver list indexes.
ExternalManager<DriverList> driverLists
External manager for driver lists.