mirror of
https://github.com/nxshock/zkv.git
synced 2024-11-27 11:21:02 +05:00
Switch to GOB encoder
This commit is contained in:
parent
11599b76b6
commit
916b50decd
@ -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: вместо нуля должно быть реальное кол-во считанных байт
|
||||
}
|
||||
|
6
utils.go
6
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) {
|
||||
|
Loading…
Reference in New Issue
Block a user