feat: added KV storage interface
This commit is contained in:
parent
4d33b12fe0
commit
5c4bbe0b58
3 changed files with 44 additions and 0 deletions
11
pkg/storage/disk.go
Normal file
11
pkg/storage/disk.go
Normal 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
20
pkg/storage/memory.go
Normal 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
13
pkg/storage/storage.go
Normal 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
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue