chore: add gperr.Unwrap method

This commit is contained in:
yusing 2025-04-13 07:07:43 +08:00
parent 8c6fe38edb
commit be87d47ebb

View file

@ -41,6 +41,18 @@ func Wrap(err error, message ...string) Error {
return &baseError{fmt.Errorf("%s: %w", message[0], err)} return &baseError{fmt.Errorf("%s: %w", message[0], err)}
} }
func Unwrap(err error) Error {
//nolint:errorlint
switch err := err.(type) {
case interface{ Unwrap() []error }:
return &nestedError{Extras: err.Unwrap()}
case interface{ Unwrap() error }:
return &baseError{err.Unwrap()}
default:
return &baseError{err}
}
}
func wrap(err error) Error { func wrap(err error) Error {
if err == nil { if err == nil {
return nil return nil