http urls monitor.

protobuf.go 559B

1234567891011121314151617181920212223242526272829303132
  1. package codec
  2. import (
  3. "errors"
  4. "github.com/golang/protobuf/proto"
  5. )
  6. type ProtoBufCoder struct{}
  7. func (c *ProtoBufCoder) Encoder(data interface{}) ([]byte, error) {
  8. v, ok := data.(proto.Message)
  9. if !ok {
  10. return nil, errors.New("unsupported data for protobuf")
  11. }
  12. return proto.Marshal(v)
  13. }
  14. func (c *ProtoBufCoder) Decoder(data []byte, des interface{}) error {
  15. v, ok := des.(proto.Message)
  16. if !ok {
  17. return errors.New("unsupported data for protobuf")
  18. }
  19. return proto.Unmarshal(data, v)
  20. }
  21. func init() {
  22. Register(PROTOBUF, &ProtoBufCoder{})
  23. }