package logr import "github.com/wiggin77/merror" // timeoutError is returned from functions that can timeout. type timeoutError struct { text string } // newTimeoutError returns a TimeoutError. func newTimeoutError(text string) timeoutError { return timeoutError{text: text} } // IsTimeoutError returns true if err is a TimeoutError. func IsTimeoutError(err error) bool { if _, ok := err.(timeoutError); ok { return true } // if a multi-error, return true if any of the errors // are TimeoutError if merr, ok := err.(*merror.MError); ok { for _, e := range merr.Errors() { if IsTimeoutError(e) { return true } } } return false } func (err timeoutError) Error() string { return err.text }