20 lines
288 B
Go
20 lines
288 B
Go
package merrors
|
|
|
|
import (
|
|
"errors"
|
|
"strings"
|
|
)
|
|
|
|
func Reason(err error) (string, bool) {
|
|
var reasoned interface {
|
|
Reason() string
|
|
}
|
|
if errors.As(err, &reasoned) {
|
|
reason := strings.TrimSpace(reasoned.Reason())
|
|
if reason != "" {
|
|
return reason, true
|
|
}
|
|
}
|
|
return "", false
|
|
}
|