http urls monitor.

codec.go 737B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package codec
  2. import "fmt"
  3. const (
  4. JSON = "text/json"
  5. PROTOBUF = "text/protobuf"
  6. String = "text/string"
  7. XML = "text/xml"
  8. )
  9. type Coder interface {
  10. Encoder(data interface{}) ([]byte, error)
  11. Decoder(data []byte, v interface{}) error
  12. }
  13. var adapters = make(map[string]Coder)
  14. func Register(name string, adapter Coder) {
  15. if adapter == nil {
  16. panic("codec: register adapter is nil")
  17. }
  18. if _, ok := adapters["name"]; ok {
  19. panic("codec: register called twice for adapter " + name)
  20. }
  21. adapters[name] = adapter
  22. }
  23. func NewCoder(adapterName string) (Coder, error) {
  24. if v, ok := adapters[adapterName]; ok {
  25. return v, nil
  26. }
  27. return nil, fmt.Errorf("codec: unknown adapter name %q (forgot to import?)", adapterName)
  28. }