error.go 727 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package version
  2. import "fmt"
  3. // Error represents a version error.
  4. type Error struct {
  5. Message string
  6. Version string
  7. }
  8. // Version error.
  9. var (
  10. ErrInvalidVersion = Error{Message: "invalid version %q"}
  11. )
  12. // Error retrieves the message of a REST API error.
  13. func (e Error) Error() string {
  14. return fmt.Sprintf(e.Message, e.Version)
  15. }
  16. // Is determines whether the Error is an instance of the target.
  17. // https://pkg.go.dev/errors#Is
  18. //
  19. // This implementation does not compare versions.
  20. func (e Error) Is(target error) bool {
  21. if t, ok := target.(Error); ok {
  22. return t.Message == e.Message
  23. }
  24. return false
  25. }
  26. func invalid(version string) Error {
  27. return Error{
  28. Message: ErrInvalidVersion.Message,
  29. Version: version,
  30. }
  31. }