26 lines
414 B
Go
26 lines
414 B
Go
package models
|
|
|
|
import "sync"
|
|
|
|
type Cache struct {
|
|
Data map[string]any
|
|
Mu sync.RWMutex
|
|
}
|
|
|
|
func CacheInit() *Cache {
|
|
return &Cache{Data: make(map[string]any)}
|
|
}
|
|
|
|
func (c *Cache) Get(key string) (any, bool) {
|
|
c.Mu.RLock()
|
|
pageData, ok := c.Data[key]
|
|
c.Mu.RUnlock()
|
|
return pageData, ok
|
|
}
|
|
|
|
func (c *Cache) Set(key string, data any) {
|
|
c.Mu.Lock()
|
|
c.Data[key] = data
|
|
c.Mu.Unlock()
|
|
}
|