Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fd720f2b34
|
@@ -69,6 +69,9 @@ func (e *MultiError) Error() (errStr string) {
|
||||
numErrs = len(e.Errors)
|
||||
}
|
||||
|
||||
e.lock.Lock()
|
||||
defer e.lock.Unlock()
|
||||
|
||||
for idx, err := range e.Errors {
|
||||
if (idx + 1) < numErrs {
|
||||
errStr += fmt.Sprintf("%v%v", err.Error(), e.ErrorSep)
|
||||
@@ -87,6 +90,9 @@ func (e *MultiError) AddError(err error) {
|
||||
return
|
||||
}
|
||||
|
||||
e.lock.Lock()
|
||||
defer e.lock.Unlock()
|
||||
|
||||
e.Errors = append(e.Errors, err)
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
package multierr
|
||||
|
||||
import (
|
||||
`sync`
|
||||
)
|
||||
|
||||
// MultiError is a type of error.Error that can contain multiple errors.
|
||||
type MultiError struct {
|
||||
// Errors is a slice of errors to combine/concatenate when .Error() is called.
|
||||
Errors []error `json:"errors"`
|
||||
// ErrorSep is a string to use to separate errors for .Error(). The default is "\n".
|
||||
ErrorSep string `json:"separator"`
|
||||
lock sync.Mutex
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user