This commit is contained in:
kekskurse 2024-03-04 14:14:03 +01:00
parent acf5845e2f
commit 5ebd7f9537
1 changed files with 19 additions and 14 deletions

33
list.go
View File

@ -2,7 +2,7 @@ package state
import ( import (
"encoding/json" "encoding/json"
"reflect" "errors"
) )
type uniqueList struct { type uniqueList struct {
@ -44,19 +44,24 @@ func (l *uniqueList) ItemExists(key string) (bool, error) {
return ok, nil return ok, nil
} }
func (l *uniqueList) GetList(data []any) error { func (l *uniqueList) GetItem(key string, item any) error {
element := reflect.TypeOf(data).Elem() data, ok := l.data[key]
var err error if !ok {
return errors.New("Item not found")
for _, dataByte := range l.data {
new := reflect.New(element)
err = json.Unmarshal(dataByte, &new)
if err != nil {
return err
}
data = append(data, new)
} }
return nil err := json.Unmarshal(data, item)
return err
}
func (l *uniqueList) GetKeys() []string {
keys := make([]string, len(l.data))
i := 0
for k := range l.data {
keys[i] = k
i++
}
return keys
} }