Files
go-xmlsec/vendor/github.com/crewjam/errset/errset.go
2018-12-13 20:33:29 +01:00

49 lines
888 B
Go

package errset
// ErrSet represents a list of errors.
//
// Example:
//
// errs := ErrSet{}
// for ... {
// if err := DoSomething(i); err != nil {
// errs = append(errs, err)
// }
// }
// return errs.ReturnValue()
//
type ErrSet []error
// ReturnValue returns the ErrSet object if at least one non-nill error is
// present or nil if there are no errors
func (es ErrSet) ReturnValue() error {
rv := ErrSet{}
for _, err := range es {
if err != nil {
rv = append(rv, err)
}
}
if len(rv) == 0 {
return nil
}
return rv
}
// Error implements the error interface. It returns each error in the list
// concatenated together with "; ".
func (es ErrSet) Error() string {
rv := ""
errCount := 0
for _, err := range es {
if err == nil {
continue
}
if errCount != 0 {
rv += "; "
}
rv += err.Error()
errCount++
}
return rv
}