add: db.load and save

This commit is contained in:
Inanc Gumus
2019-09-08 11:47:13 +03:00
parent d217463316
commit 4dadfb5cfd
5 changed files with 184 additions and 42 deletions

View File

@@ -10,6 +10,7 @@ package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"reflect"
)
@@ -18,14 +19,14 @@ type database struct {
types map[string]item // the registry of the types
}
// #v1
// func (db *database) load(path string) error {
// data, err := ioutil.ReadFile(path)
// if err != nil {
// return err
// }
// return json.Unmarshal(data, db)
// }
// load the list by decoding the data from a json file.
func (db *database) load(path string) error { // #v1
data, err := ioutil.ReadFile(path)
if err != nil {
return err
}
return json.Unmarshal(data, db)
}
// #v2
// func (db *database) load(r io.Reader) error {
@@ -39,28 +40,6 @@ type database struct {
// #v3
// TODO: use decoder
// #v1
// func (db *database) save(path string) error {
// data, err := json.MarshalIndent(db, "", "\t")
// if err != nil {
// return err
// }
// return ioutil.WriteFile(path, data, 0644)
// }
// #v2
// func (db *database) save(w io.Writer) error {
// data, err := json.MarshalIndent(db, "", "\t")
// if err != nil {
// return err
// }
//
// return io.Copy(w, bytes.NewReader(data))
// }
// #v3
// TODO: use encoder
func (db *database) MarshalJSON() ([]byte, error) {
type encodable struct {
Type string