mirror of
https://github.com/42wim/matterbridge.git
synced 2024-12-22 11:12:44 +01: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
|
||
|
}
|