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 (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"encoding/json"
|
"encoding/gob"
|
||||||
"io"
|
"io"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -44,7 +44,7 @@ func newRecord(recordType RecordType, key, value interface{}) (*Record, error) {
|
|||||||
func (r *Record) Marshal() ([]byte, error) {
|
func (r *Record) Marshal() ([]byte, error) {
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
|
|
||||||
err := json.NewEncoder(buf).Encode(r)
|
err := gob.NewEncoder(buf).Encode(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -73,7 +73,7 @@ func readRecord(r io.Reader) (n int64, record *Record, err error) {
|
|||||||
return 0, nil, err // TODO: вместо нуля должно быть реальное кол-во считанных байт
|
return 0, nil, err // TODO: вместо нуля должно быть реальное кол-во считанных байт
|
||||||
}
|
}
|
||||||
|
|
||||||
err = json.NewDecoder(bytes.NewReader(recordBytes)).Decode(&record)
|
err = gob.NewDecoder(bytes.NewReader(recordBytes)).Decode(&record)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return 0, nil, err // TODO: вместо нуля должно быть реальное кол-во считанных байт
|
return 0, nil, err // TODO: вместо нуля должно быть реальное кол-во считанных байт
|
||||||
}
|
}
|
||||||
|
6
utils.go
6
utils.go
@ -3,19 +3,19 @@ package zkv
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"crypto/sha256"
|
"crypto/sha256"
|
||||||
"encoding/json"
|
"encoding/gob"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
)
|
)
|
||||||
|
|
||||||
func encode(value interface{}) ([]byte, error) {
|
func encode(value interface{}) ([]byte, error) {
|
||||||
buf := new(bytes.Buffer)
|
buf := new(bytes.Buffer)
|
||||||
err := json.NewEncoder(buf).Encode(value)
|
err := gob.NewEncoder(buf).Encode(value)
|
||||||
return buf.Bytes(), err
|
return buf.Bytes(), err
|
||||||
}
|
}
|
||||||
|
|
||||||
func decode(b []byte, value interface{}) error {
|
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) {
|
func hashInterface(value interface{}) ([]byte, error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user