From 60234cceb3280ada341f9802ca42532b3544bf3e Mon Sep 17 00:00:00 2001 From: Adphi Date: Sun, 13 Mar 2022 17:37:39 +0100 Subject: [PATCH] errors: add `Is{Code}(err error) bool` methods close #3 Signed-off-by: Adphi --- errors/errors.go | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/errors/errors.go b/errors/errors.go index 7457c9b..9d7a574 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -231,3 +231,100 @@ func Unauthenticatedf(msg string, args ...interface{}) error { func Unauthenticatedd(err error, details ...proto.Message) error { return statusErr(codes.Unauthenticated, err, details...) } + +func IsCanceled(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.Canceled +} +func IsUnknown(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.Unknown +} +func IsInvalidArgument(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.InvalidArgument +} +func IsDeadlineExceeded(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.DeadlineExceeded +} +func IsNotFound(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.NotFound +} +func IsAlreadyExists(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.AlreadyExists +} +func IsPermissionDenied(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.PermissionDenied +} +func IsResourceExhausted(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.ResourceExhausted +} +func IsFailedPrecondition(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.FailedPrecondition +} +func IsAborted(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.Aborted +} +func IsOutOfRange(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.OutOfRange +} +func IsUnimplemented(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.Unimplemented +} +func IsInternal(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.Internal +} +func IsUnavailable(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.Unavailable +} +func IsDataLoss(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.DataLoss +} +func IsUnauthenticated(err error) bool { + if err == nil { + return false + } + return status.Convert(err).Code() == codes.Unauthenticated +}