package codes import ( "context" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) // Acceptable checks if given error is acceptable. func Acceptable(err error) bool { switch status.Code(err) { case codes.DeadlineExceeded, codes.Internal, codes.Unavailable, codes.DataLoss: return false case codes.Unknown: return acceptableUnknown(err) default: return true } } func acceptableUnknown(err error) bool { switch err { case context.DeadlineExceeded: return false default: return true } }