statusbar-go/cache.go

27 lines
434 B
Go

package main
import (
"sync"
)
const (
// cache key definitions
CACHE_BT_CONNECTED = "bt_connected"
CACHE_BT_BATTERY = "bt_battery"
CACHE_MEDIA = "media"
CACHE_LAYOUT = "kbd_layout"
CACHE_TOGGL = "toggl_project"
)
var CACHE = sync.Map{}
func getC[T comparable](c *sync.Map, id string, fallback func() T) T {
val, ok := c.Load(id)
if !ok {
val = fallback()
c.Store(id, val)
}
return val.(T)
}