summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mattermost/logr/v2/timeout.go
blob: 37737bcfd6a72cf656cd2d6f7b1df00aac5d93f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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
}