wip
This commit is contained in:
parent
4c69f00abd
commit
c3d8a3e0fe
|
@ -0,0 +1,52 @@
|
|||
package memory
|
||||
|
||||
import (
|
||||
"sort"
|
||||
"sync"
|
||||
|
||||
"go-mod.ewintr.nl/planner/item"
|
||||
)
|
||||
|
||||
type Sync struct {
|
||||
items map[string]item.Item
|
||||
mutex sync.RWMutex
|
||||
}
|
||||
|
||||
func NewSync() *Sync {
|
||||
return &Sync{
|
||||
items: make(map[string]item.Item),
|
||||
}
|
||||
}
|
||||
|
||||
func (r *Sync) FindAll() ([]item.Item, error) {
|
||||
r.mutex.RLock()
|
||||
defer r.mutex.RUnlock()
|
||||
|
||||
items := make([]item.Item, 0, len(r.items))
|
||||
for _, item := range r.items {
|
||||
items = append(items, item)
|
||||
}
|
||||
sort.Slice(items, func(i, j int) bool {
|
||||
return items[i].ID < items[j].ID
|
||||
})
|
||||
|
||||
return items, nil
|
||||
}
|
||||
|
||||
func (r *Sync) Store(e item.Item) error {
|
||||
r.mutex.Lock()
|
||||
defer r.mutex.Unlock()
|
||||
|
||||
r.items[e.ID] = e
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (r *Sync) DeleteAll() error {
|
||||
r.mutex.Lock()
|
||||
defer r.mutex.Unlock()
|
||||
|
||||
r.items = make(map[string]item.Item)
|
||||
|
||||
return nil
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package memory_test
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestSync(t *testing.T) {
|
||||
t.Parallel()
|
||||
}
|
Loading…
Reference in New Issue