package buserr import ( "bytes" "fmt" "sort" ) type MultiErr map[string]error func (e MultiErr) Error() string { var keys []string for key := range e { keys = append(keys, key) } sort.Strings(keys) buffer := bytes.NewBufferString("") for _, key := range keys { buffer.WriteString(fmt.Sprintf("[%s] %s\n", key, e[key])) } return buffer.String() }