gob_codec.go 507 B

1234567891011121314151617181920212223242526
  1. package util // import "fixup.cc/go/util"
  2. import (
  3. "bytes"
  4. "encoding/gob"
  5. )
  6. // gob
  7. // 将结构体编码成 []byte
  8. func Encode(data interface{}) ([]byte, error) {
  9. buf := bytes.NewBuffer(nil)
  10. enc := gob.NewEncoder(buf)
  11. err := enc.Encode(data)
  12. if err != nil {
  13. return nil, err
  14. }
  15. return buf.Bytes(), nil
  16. }
  17. // gob
  18. // 将 []byte 解码成 interface 指定的结构体
  19. func Decode(data []byte, to interface{}) error {
  20. buf := bytes.NewBuffer(data)
  21. dec := gob.NewDecoder(buf)
  22. return dec.Decode(to)
  23. }