Adding storage to our data
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
)
|
||||
|
||||
type storage[T any] struct {
|
||||
FileName string
|
||||
}
|
||||
|
||||
func newStorage[T any](filename string) *storage[T] {
|
||||
return &storage[T]{FileName: filename}
|
||||
}
|
||||
|
||||
func (s *storage[T]) save(data T) error {
|
||||
fileData, err := json.MarshalIndent(data, "", " ")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return os.WriteFile(s.FileName, fileData, 0o644)
|
||||
}
|
||||
|
||||
func (s *storage[T]) load(data *T) error {
|
||||
fileData, err := os.ReadFile(s.FileName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return json.Unmarshal(fileData, data)
|
||||
}
|
||||
Reference in New Issue
Block a user