aboutsummaryrefslogtreecommitdiff
path: root/internal/object/item_store.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-06-25 15:40:48 -0400
committerhistoria <[not public]>2026-06-25 15:40:48 -0400
commitabd612c15799f604e671e83dc7c410ed2b44185f (patch)
tree0597ca92350de73aac2a7cf26b2f2d6595dac0cc /internal/object/item_store.go
parent2725e2927a1595c7b100d942d1f14146252adeb7 (diff)
downloadthehouseoficarus-abd612c15799f604e671e83dc7c410ed2b44185f.tar.gz
slop refactor
Diffstat (limited to 'internal/object/item_store.go')
-rw-r--r--internal/object/item_store.go78
1 files changed, 0 insertions, 78 deletions
diff --git a/internal/object/item_store.go b/internal/object/item_store.go
deleted file mode 100644
index e930220..0000000
--- a/internal/object/item_store.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package object
-
-import (
- "fmt"
- "os"
- "path/filepath"
-
- "thehouseoficarus/internal/action"
- "gopkg.in/yaml.v3"
-)
-
-type ItemStore struct {
- dataDir string
- pathIndex map[string]string
- cache map[string]*ItemDef
-}
-
-func NewItemStore(dataDir string) *ItemStore {
- s := &ItemStore{
- dataDir: dataDir,
- pathIndex: action.BuildPathIndex(filepath.Join(dataDir, "items")),
- cache: make(map[string]*ItemDef),
- }
- return s
-}
-
-func (s *ItemStore) Load(id string) (*ItemDef, error) {
- if def, ok := s.cache[id]; ok {
- return def, nil
- }
- path, ok := s.pathIndex[id]
- if !ok {
- return nil, fmt.Errorf("read item %s: no such item", id)
- }
- data, err := os.ReadFile(path)
- if err != nil {
- return nil, fmt.Errorf("read item %s: %w", id, err)
- }
- var def ItemDef
- if err := yaml.Unmarshal(data, &def); err != nil {
- return nil, fmt.Errorf("parse item %s: %w", id, err)
- }
- def.ID = id
- s.cache[id] = &def
- return &def, nil
-}
-
-func (s *ItemStore) LoadAll() ([]*ItemDef, error) {
- dir := filepath.Join(s.dataDir, "items")
- var defs []*ItemDef
- err := action.WalkYAMLDir(dir, func(path, id string, data []byte) error {
- if def, ok := s.cache[id]; ok {
- defs = append(defs, def)
- return nil
- }
- var def ItemDef
- if err := yaml.Unmarshal(data, &def); err != nil {
- return fmt.Errorf("parse item %s: %w", id, err)
- }
- def.ID = id
- s.cache[id] = &def
- defs = append(defs, &def)
- return nil
- })
- return defs, err
-}
-
-func (s *ItemStore) PathIndex() map[string]string {
- return s.pathIndex
-}
-
-func (s *ItemStore) IDSet() map[string]bool {
- ids := make(map[string]bool)
- for id := range s.pathIndex {
- ids[id] = true
- }
- return ids
-}