forked from lug/matterbridge
		
	
		
			
				
	
	
		
			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
 | |
| }
 | 
