errors: add CodeIn helper func

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2022-04-19 17:12:25 +03:00
parent 1db505decd
commit c5aeaf6db7
2 changed files with 38 additions and 0 deletions

View File

@@ -233,6 +233,27 @@ func Equal(err1 error, err2 error) bool {
return true
}
// CodeIn return true if err has specified code
func CodeIn(err interface{}, codes ...int32) bool {
var code int32
switch verr := err.(type) {
case *Error:
code = verr.Code
case int32:
code = verr
default:
return false
}
for _, check := range codes {
if code == check {
return true
}
}
return false
}
// FromError try to convert go error to *Error
func FromError(err error) *Error {
if verr, ok := err.(*Error); ok && verr != nil {