Есть хелперы для роботы с глобальной картой (работать с ней возможно только через них). Вот делал но код дублируется чуть менее чем везде. Как можно исправить это дело?
func Get(id string) (Sessid, bool) {
rw := &sync.RWMutex{}
rw.RLock()
defer rw.RUnlock()
val, ok := stSessid[id].Storage
return val, ok
}
func Set(id string, value Sessid) error {
_, dublicate := ramGet(id)
if dublicate {
return errors.New("Такой ключ уже есть")
}
r := &sync.Mutex{}
r.Lock()
defer r.Unlock()
stSessid[id].Storage = value
}
func Del(id string) error {
_, dublicate := ramGet(id)
if !dublicate {
return errors.New("Ключа нету")
}
r := &sync.Mutex{}
r.Lock()
defer r.Unlock()
delete(stSessid, id)
}
func Up(id string, value Sessid) error {
_, dublicate := ramGet(id)
if !dublicate {
return errors.New("Ключа нету")
}
r := &sync.Mutex{}
r.Lock()
defer r.Unlock()
stSessid[id].Storage = value
}