mirror of
https://github.com/foomo/keel.git
synced 2025-10-16 12:35:34 +00:00
36 lines
635 B
Go
36 lines
635 B
Go
package keelerrors
|
|
|
|
import "errors"
|
|
|
|
type wrappedError struct {
|
|
err error
|
|
cause error
|
|
}
|
|
|
|
func NewWrappedError(err, cause error) error {
|
|
return &wrappedError{
|
|
err: err,
|
|
cause: cause,
|
|
}
|
|
}
|
|
|
|
func (e *wrappedError) As(target interface{}) bool {
|
|
return errors.As(e.err, target) || errors.As(e.cause, target)
|
|
}
|
|
|
|
func (e *wrappedError) Is(target error) bool {
|
|
return errors.Is(e.err, target) || errors.Is(e.cause, target)
|
|
}
|
|
|
|
func (e *wrappedError) Cause() error {
|
|
return e.cause
|
|
}
|
|
|
|
func (e *wrappedError) Unwrap() error {
|
|
return e.err
|
|
}
|
|
|
|
func (e *wrappedError) Error() string {
|
|
return e.err.Error() + ": " + e.cause.Error()
|
|
}
|