feat: added KV storage interface

This commit is contained in:
David Allen 2025-08-19 21:33:28 -06:00
parent 4d33b12fe0
commit 5c4bbe0b58
Signed by: towk
GPG key ID: 0430CDBE22619155
3 changed files with 44 additions and 0 deletions

11
pkg/storage/disk.go Normal file
View file

@ -0,0 +1,11 @@
package storage
type DiskStorage struct{}
func (ds *DiskStorage) Read(k string) error {
return nil
}
func (ms *DiskStorage) Write(k string, v any) error {
return nil
}

20
pkg/storage/memory.go Normal file
View file

@ -0,0 +1,20 @@
package storage
import "fmt"
type MemoryStorage struct {
Data map[string]any
}
func (ms *MemoryStorage) Read(k string) (any, error) {
v, ok := ms.Data[k]
if ok {
return v, nil
}
return nil, fmt.Errorf("value does not exist")
}
func (ms *MemoryStorage) Write(k string, v any) error {
ms.Data[k] = v
return nil
}

13
pkg/storage/storage.go Normal file
View file

@ -0,0 +1,13 @@
package storage
type KVStore interface {
Get(k string) (any, error)
Set(k string, v any) error
GetData() any
}
type KVStaticStore[T any] interface {
Get(k string) (T, error)
Set(k string, v T) error
GetData() T
}