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