diff options
Diffstat (limited to 'util/common/multi_error.go')
| -rw-r--r-- | util/common/multi_error.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/util/common/multi_error.go b/util/common/multi_error.go new file mode 100644 index 00000000..ff9ff628 --- /dev/null +++ b/util/common/multi_error.go @@ -0,0 +1,30 @@ +package common + +import ( + "strings" +) + +type multiError []error + +func (e multiError) Error() string { + var r strings.Builder + r.WriteString("multierr: ") + for _, err := range e { + r.WriteString(err.Error()) + r.WriteString(" | ") + } + return r.String() +} + +func Combine(maybeError ...error) error { + var errs multiError + for _, err := range maybeError { + if err != nil { + errs = append(errs, err) + } + } + if len(errs) == 0 { + return nil + } + return errs +} |
