serializer.go 505 B

12345678910111213141516171819202122
  1. package serializer
  2. import (
  3. "bytes"
  4. "encoding/gob"
  5. )
  6. // convert string to any kind of struct
  7. func String2Struct(str string, target interface{}) error {
  8. bytes_buffer := bytes.NewBufferString(str)
  9. dec := gob.NewDecoder(bytes_buffer)
  10. err := dec.Decode(target)
  11. return err
  12. }
  13. // convert any kind of struct to string
  14. func Struct2String(stru interface{}) (string, error) {
  15. var bytes_buffer bytes.Buffer
  16. enc := gob.NewEncoder(&bytes_buffer)
  17. err := enc.Encode(stru)
  18. return bytes_buffer.String(), err
  19. }