gob.go 415 B

12345678910111213141516171819202122232425
  1. package parser
  2. import (
  3. "bytes"
  4. "encoding/gob"
  5. )
  6. func MarshalGob(v any) ([]byte, error) {
  7. var buf bytes.Buffer
  8. enc := gob.NewEncoder(&buf)
  9. if err := enc.Encode(v); err != nil {
  10. return nil, err
  11. }
  12. return buf.Bytes(), nil
  13. }
  14. func UnmarshalGob[T any](data []byte) (T, error) {
  15. var v T
  16. dec := gob.NewDecoder(bytes.NewReader(data))
  17. if err := dec.Decode(&v); err != nil {
  18. return v, err
  19. }
  20. return v, nil
  21. }