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