diff --git a/record.go b/record.go index 74bde6e..02a026e 100644 --- a/record.go +++ b/record.go @@ -3,7 +3,7 @@ package zkv import ( "bytes" "encoding/binary" - "encoding/json" + "encoding/gob" "io" ) @@ -44,7 +44,7 @@ func newRecord(recordType RecordType, key, value interface{}) (*Record, error) { func (r *Record) Marshal() ([]byte, error) { buf := new(bytes.Buffer) - err := json.NewEncoder(buf).Encode(r) + err := gob.NewEncoder(buf).Encode(r) if err != nil { return nil, err } @@ -73,7 +73,7 @@ func readRecord(r io.Reader) (n int64, record *Record, err error) { return 0, nil, err // TODO: вместо нуля должно быть реальное кол-во считанных байт } - err = json.NewDecoder(bytes.NewReader(recordBytes)).Decode(&record) + err = gob.NewDecoder(bytes.NewReader(recordBytes)).Decode(&record) if err != nil { return 0, nil, err // TODO: вместо нуля должно быть реальное кол-во считанных байт } diff --git a/utils.go b/utils.go index b380e32..3e9c55c 100644 --- a/utils.go +++ b/utils.go @@ -3,19 +3,19 @@ package zkv import ( "bytes" "crypto/sha256" - "encoding/json" + "encoding/gob" "io" "io/ioutil" ) func encode(value interface{}) ([]byte, error) { buf := new(bytes.Buffer) - err := json.NewEncoder(buf).Encode(value) + err := gob.NewEncoder(buf).Encode(value) return buf.Bytes(), err } func decode(b []byte, value interface{}) error { - return json.NewDecoder(bytes.NewReader(b)).Decode(&value) + return gob.NewDecoder(bytes.NewReader(b)).Decode(value) } func hashInterface(value interface{}) ([]byte, error) {