1package multierror
2
3import (
4	"fmt"
5	"strings"
6)
7
8// ErrorFormatFunc is a function callback that is called by Error to
9// turn the list of errors into a string.
10type ErrorFormatFunc func([]error) string
11
12// ListFormatFunc is a basic formatter that outputs the number of errors
13// that occurred along with a bullet point list of the errors.
14func ListFormatFunc(es []error) string {
15	if len(es) == 1 {
16		return fmt.Sprintf("1 error occurred:\n\n* %s", es[0])
17	}
18
19	points := make([]string, len(es))
20	for i, err := range es {
21		points[i] = fmt.Sprintf("* %s", err)
22	}
23
24	return fmt.Sprintf(
25		"%d errors occurred:\n\n%s",
26		len(es), strings.Join(points, "\n"))
27}
28