gitee.com/h79/goutils@v1.22.10/rpc/error.go (about) 1 package rpc 2 3 import ( 4 "gitee.com/h79/goutils/common/result" 5 "google.golang.org/grpc/codes" 6 "google.golang.org/grpc/status" 7 ) 8 9 func WithStatus(err error) *status.Status { 10 if st, ok := status.FromError(err); ok { 11 return st 12 } 13 return nil 14 } 15 16 func IsDeadlineExceeded(s *status.Status) bool { 17 return s != nil && s.Code() == codes.DeadlineExceeded 18 } 19 20 func IsUnimplemented(s *status.Status) bool { 21 return s != nil && s.Code() == codes.Unimplemented 22 } 23 24 func IsClosed(s *status.Status) bool { 25 return s != nil && s.Code() == codes.Canceled 26 } 27 28 func IsNeedAlarm(s *status.Status) bool { 29 return s != nil && (s.Code() == codes.DeadlineExceeded || s.Code() == codes.Unimplemented) 30 } 31 32 func ErrIsDeadlineExceeded(err error) bool { 33 return result.ErrCode(result.ErrDeadlineExceeded).Is(err) 34 }