Files
kjol/tools/tsgo/internal/core/linkstore.go
2026-07-09 16:50:43 -04:00

31 lines
490 B
Go

package core
// Links store
type LinkStore[K comparable, V any] struct {
entries map[K]*V
arena Arena[V]
}
func (s *LinkStore[K, V]) Get(key K) *V {
value := s.entries[key]
if value != nil {
return value
}
if s.entries == nil {
s.entries = make(map[K]*V)
}
value = s.arena.New()
s.entries[key] = value
return value
}
func (s *LinkStore[K, V]) Has(key K) bool {
_, ok := s.entries[key]
return ok
}
func (s *LinkStore[K, V]) TryGet(key K) *V {
return s.entries[key]
}