package storage import ( "fmt" "git.towk2.me/towk/makeshift/internal/kwargs" ) type MemoryStorage struct { Data map[string]any `json:"data"` } func (ms *MemoryStorage) Init() error { ms.Data = map[string]any{} return nil } func (ms *MemoryStorage) Cleanup() error { return nil } func (ms *MemoryStorage) SetKWArgs(kw *kwargs.KWArgs) error { ms.Data[kwargs.RESERVED_KEY] = kw return nil } func (ms *MemoryStorage) GetKWArgs() (*kwargs.KWArgs, error) { kw, err := ms.Get(kwargs.RESERVED_KEY) if err != nil { return nil, err } return kw.(*kwargs.KWArgs), err } func (ms *MemoryStorage) Get(k string) (any, error) { v, ok := ms.Data[k] if ok { return v, nil } return nil, fmt.Errorf("value '%s' does not exist", k) } func (ms *MemoryStorage) Set(k string, v any) error { if k == kwargs.RESERVED_KEY { return fmt.Errorf("cannot set reserved key '%s' (use SetKWArgs() instead)", k) } ms.Data[k] = v return nil } func (ms *MemoryStorage) GetData() any { return ms.Data }