Documentation
¶
Overview ¶
Package bimap provides a threadsafe bidirectional map
Index ¶
- type BiMap
- func (b *BiMap[K, V]) Delete(k K)
- func (b *BiMap[K, V]) DeleteInverse(v V)
- func (b *BiMap[K, V]) Exists(k K) bool
- func (b *BiMap[K, V]) ExistsInverse(k V) bool
- func (b *BiMap[K, V]) Get(k K) (V, bool)
- func (b *BiMap[K, V]) GetForwardMap() map[K]V
- func (b *BiMap[K, V]) GetInverse(v V) (K, bool)
- func (b *BiMap[K, V]) GetInverseMap() map[V]K
- func (b *BiMap[K, V]) Insert(k K, v V)
- func (b *BiMap[K, V]) Lock()
- func (b *BiMap[K, V]) MakeImmutable()
- func (b *BiMap[K, V]) Size() int
- func (b *BiMap[K, V]) Unlock()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BiMap ¶
type BiMap[K comparable, V comparable] struct { // contains filtered or unexported fields }
BiMap is a bi-directional hashmap that is thread safe and supports immutability
func NewBiMap ¶
func NewBiMap[K comparable, V comparable]() *BiMap[K, V]
NewBiMap returns a an empty, mutable, biMap
func NewBiMapFromMap ¶
func NewBiMapFromMap[K comparable, V comparable](forwardMap map[K]V) *BiMap[K, V]
NewBiMapFrom returns a new BiMap from a map[K, V]
func (*BiMap[K, V]) Delete ¶
func (b *BiMap[K, V]) Delete(k K)
Delete removes a key-value pair from the BiMap for a given key. Returns if the key doesn't exist
func (*BiMap[K, V]) DeleteInverse ¶
func (b *BiMap[K, V]) DeleteInverse(v V)
DeleteInverse emoves a key-value pair from the BiMap for a given value. Returns if the value doesn't exist
func (*BiMap[K, V]) ExistsInverse ¶
ExistsInverse checks whether or not a value exists in the BiMap
func (*BiMap[K, V]) Get ¶
Get returns the value for a given key in the BiMap and whether or not the element was present.
func (*BiMap[K, V]) GetForwardMap ¶
func (b *BiMap[K, V]) GetForwardMap() map[K]V
GetForwardMap returns a regular go map mapping from the BiMap's keys to its values
func (*BiMap[K, V]) GetInverse ¶
GetInverse returns the key for a given value in the BiMap and whether or not the element was present.
func (*BiMap[K, V]) GetInverseMap ¶
func (b *BiMap[K, V]) GetInverseMap() map[V]K
GetInverseMap returns a regular go map mapping from the BiMap's values to its keys
func (*BiMap[K, V]) Insert ¶
func (b *BiMap[K, V]) Insert(k K, v V)
Insert puts a key and value into the BiMap, provided its mutable. Also creates the reverse mapping from value to key.
func (*BiMap[K, V]) MakeImmutable ¶
func (b *BiMap[K, V]) MakeImmutable()
MakeImmutable freezes the BiMap preventing any further write actions from taking place