func (c *ErrorCollector) String() string {
	result := ""
	for i, err := range c.errs {
		result += err.Error()
		if i != len(c.errs)-1 {
			result += "; "
		}
	}
	return result
}
String returns string representation of ErrorCollector (all errors concatenated)
package common
import (
	"errors"
)
type ErrorCollector struct {
	errs []error
}
func (c *ErrorCollector) Add(err error) {
	if err != nil {
		c.errs = append(c.errs, err)
	}
}
func (c *ErrorCollector) HasErrors() bool {
	return len(c.errs) > 0
}
func (c *ErrorCollector) Combine() error {
	if c.HasErrors() {
		return errors.New(c.String())
	}
	return nil
}