errors.go 862 B

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