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"` WrappedErrType string `json:"wrappedErrType"`
Caller string `json:"caller"` Caller string `json:"caller"`
OriginalError *ExErr OriginalError *ExErr `json:"originalError"`
Meta MetaMap `json:"meta"` Meta MetaMap `json:"meta"`
} }
@ -31,10 +31,16 @@ func (ee *ExErr) Error() string {
return ee.Message return ee.Message
} }
// Unwrap must be implemented so that some error.XXX methods work
func (ee *ExErr) Unwrap() error { func (ee *ExErr) Unwrap() error {
return ee.OriginalError 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) { func (ee *ExErr) Log(evt *zerolog.Event) {
evt.Msg(ee.FormatLog(LogPrintFull)) evt.Msg(ee.FormatLog(LogPrintFull))
} }

View File

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

View File

@ -1,5 +1,5 @@
package goext 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"