v0.0.219 implement error.Is(*) for exerr

This commit is contained in:
Mike Schwörer 2023-07-28 15:42:12 +02:00
parent 190584e0e6
commit 2f1b784dc2
Signed by: Mikescher
GPG Key ID: D3C7172E0A70F8CF
3 changed files with 11 additions and 3 deletions

View File

@ -22,7 +22,7 @@ type ExErr struct {
WrappedErrType string `json:"wrappedErrType"`
Caller string `json:"caller"`
OriginalError *ExErr
OriginalError *ExErr `json:"originalError"`
Meta MetaMap `json:"meta"`
}
@ -31,10 +31,16 @@ func (ee *ExErr) Error() string {
return ee.Message
}
// Unwrap must be implemented so that some error.XXX methods work
func (ee *ExErr) Unwrap() error {
return ee.OriginalError
}
// Is must be implemented so that error.Is(x) works
func (ee *ExErr) Is(e error) bool {
return IsFrom(ee, e)
}
func (ee *ExErr) Log(evt *zerolog.Event) {
evt.Msg(ee.FormatLog(LogPrintFull))
}

View File

@ -24,6 +24,8 @@ func IsFrom(e error, original error) bool {
if e == nil {
return false
}
//goland:noinspection GoDirectComparisonOfErrors
if e == original {
return true
}

View File

@ -1,5 +1,5 @@
package goext
const GoextVersion = "0.0.218"
const GoextVersion = "0.0.219"
const GoextVersionTimestamp = "2023-07-27T17:16:30+0200"
const GoextVersionTimestamp = "2023-07-28T15:42:12+0200"