| Index: common/errors/multierror.go
|
| diff --git a/common/errors/multierror.go b/common/errors/multierror.go
|
| index 73d9597cfd0802d286b3853170c1c33e97c76dbe..3340a96e2a9670429fccde0225339486a6422145 100644
|
| --- a/common/errors/multierror.go
|
| +++ b/common/errors/multierror.go
|
| @@ -94,3 +94,25 @@ func Fix(err error) error {
|
| }
|
| return err
|
| }
|
| +
|
| +// Any returns true if a the filter function is true for the supplied error.
|
| +// If the supplied error is a MultiError, Any will recurse into it.
|
| +//
|
| +// If err is nil, Any will return false.
|
| +func Any(err error, fn func(error) bool) bool {
|
| + if err == nil {
|
| + return false
|
| + }
|
| +
|
| + if fn(err) {
|
| + return true
|
| + }
|
| + if merr, ok := err.(MultiError); ok {
|
| + for _, e := range merr {
|
| + if Any(e, fn) {
|
| + return true
|
| + }
|
| + }
|
| + }
|
| + return false
|
| +}
|
|
|