errors.go 852 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright (C) 2014 The Protocol Authors.
  2. package protocol
  3. import (
  4. "errors"
  5. )
  6. const (
  7. ecNoError int32 = iota
  8. ecGeneric
  9. ecNoSuchFile
  10. ecInvalid
  11. )
  12. var (
  13. ErrNoError error
  14. ErrGeneric = errors.New("generic error")
  15. ErrNoSuchFile = errors.New("no such file")
  16. ErrInvalid = errors.New("file is invalid")
  17. )
  18. var lookupError = map[int32]error{
  19. ecNoError: ErrNoError,
  20. ecGeneric: ErrGeneric,
  21. ecNoSuchFile: ErrNoSuchFile,
  22. ecInvalid: ErrInvalid,
  23. }
  24. var lookupCode = map[error]int32{
  25. ErrNoError: ecNoError,
  26. ErrGeneric: ecGeneric,
  27. ErrNoSuchFile: ecNoSuchFile,
  28. ErrInvalid: ecInvalid,
  29. }
  30. func codeToError(errcode int32) error {
  31. err, ok := lookupError[errcode]
  32. if !ok {
  33. return ErrGeneric
  34. }
  35. return err
  36. }
  37. func errorToCode(err error) int32 {
  38. code, ok := lookupCode[err]
  39. if !ok {
  40. return ecGeneric
  41. }
  42. return code
  43. }