gosora/common/menu_item_store.go

31 lines
589 B
Go

package common
import "sync"
type DefaultMenuItemStore struct {
items map[int]MenuItem
itemLock sync.RWMutex
}
func NewDefaultMenuItemStore() *DefaultMenuItemStore {
return &DefaultMenuItemStore{
items: make(map[int]MenuItem),
}
}
func (store *DefaultMenuItemStore) Add(item MenuItem) {
store.itemLock.Lock()
defer store.itemLock.Unlock()
store.items[item.ID] = item
}
func (store *DefaultMenuItemStore) Get(id int) (MenuItem, error) {
store.itemLock.RLock()
item, ok := store.items[id]
store.itemLock.RUnlock()
if ok {
return item, nil
}
return item, ErrNoRows
}