diff options
| author | historia <[not public]> | 2026-06-25 15:40:48 -0400 |
|---|---|---|
| committer | historia <[not public]> | 2026-06-25 15:40:48 -0400 |
| commit | abd612c15799f604e671e83dc7c410ed2b44185f (patch) | |
| tree | 0597ca92350de73aac2a7cf26b2f2d6595dac0cc /internal/object/item_store.go | |
| parent | 2725e2927a1595c7b100d942d1f14146252adeb7 (diff) | |
| download | thehouseoficarus-abd612c15799f604e671e83dc7c410ed2b44185f.tar.gz | |
slop refactor
Diffstat (limited to 'internal/object/item_store.go')
| -rw-r--r-- | internal/object/item_store.go | 78 |
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 -} |
