Steal multierror from aurlib

This commit is contained in:
morganamilo 2018-08-02 16:05:43 +01:00
parent 6b25e60f8b
commit 58240bdc3d
No known key found for this signature in database
GPG key ID: 6FE9E7996B0B082E

View file

@ -2,6 +2,7 @@ package main
import (
"fmt"
"sync"
"unicode"
)
@ -128,3 +129,36 @@ func removeInvalidTargets(targets []string) []string {
return filteredTargets
}
type MultiError struct {
Errors []error
mux sync.Mutex
}
func (err *MultiError) Error() string {
str := ""
for _, e := range err.Errors {
str += e.Error()
}
return str
}
func (err *MultiError) Add(e error) {
if e == nil {
return
}
err.mux.Lock()
err.Errors = append(err.Errors, e)
err.mux.Unlock()
}
func (err *MultiError) Return() error {
if len(err.Errors) > 0 {
return err
}
return nil
}