Files
tg-holy-bot/vendor/github.com/NicoNex/echotron/v3/smap.go
2026-03-14 22:51:43 +03:00

27 lines
487 B
Go

package echotron
import "sync"
type smap[K, V any] sync.Map
func (s *smap[K, V]) load(key K) (val V, ok bool) {
v, ok := (*sync.Map)(s).Load(key)
if !ok {
return
}
return v.(V), ok
}
func (s *smap[K, V]) store(key K, val V) {
(*sync.Map)(s).Store(key, val)
}
func (s *smap[K, V]) loadOrStore(key K, val V) (actual V, loaded bool) {
a, loaded := (*sync.Map)(s).LoadOrStore(key, val)
return a.(V), loaded
}
func (s *smap[K, V]) delete(key K) {
(*sync.Map)(s).Delete(key)
}