49 lines
945 B
Go
49 lines
945 B
Go
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 {
|
|
return ms.Set(kwargs.RESERVED_KEY, kw)
|
|
}
|
|
|
|
func (ms *MemoryStorage) GetKWArgs() (*kwargs.KWArgs, error) {
|
|
kw, err := ms.Get(kwargs.RESERVED_KEY)
|
|
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" {
|
|
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
|
|
}
|