mirror of
https://github.com/42wim/matterbridge
synced 2024-11-17 03:26:07 +00:00
35 lines
719 B
Go
35 lines
719 B
Go
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
|
|
}
|