123456789101112131415161718192021222324252627282930 |
- package codec
- import (
- "bytes"
- "encoding/gob"
- "io"
- )
- type GobCodec struct {
- }
- func (codec *GobCodec) EncodeTo(w io.Writer, i interface{}) (err error) {
- return gob.NewEncoder(w).Encode(i)
- }
- func (codec *GobCodec) DecodeFrom(r io.Reader, i interface{}) (err error) {
- return gob.NewDecoder(r).Decode(i)
- }
- func (codec *GobCodec) Encode(i interface{}) (b []byte, err error) {
- writer := &bytes.Buffer{}
- if err = gob.NewEncoder(writer).Encode(i); err == nil {
- b = writer.Bytes()
- }
- return
- }
- func (codec *GobCodec) Decode(b []byte, i interface{}) (err error) {
- return gob.NewDecoder(bytes.NewReader(b)).Decode(i)
- }
|