combinederr.gno

0.67 Kb ยท 40 lines
 1package combinederr
 2
 3import "strings"
 4
 5// CombinedError is a combined execution error
 6type CombinedError struct {
 7	errors []error
 8}
 9
10// Error returns the combined execution error
11func (e *CombinedError) Error() string {
12	if len(e.errors) == 0 {
13		return ""
14	}
15
16	var sb strings.Builder
17
18	for _, err := range e.errors {
19		sb.WriteString(err.Error() + "; ")
20	}
21
22	// Remove the last semicolon and space
23	result := sb.String()
24
25	return result[:len(result)-2]
26}
27
28// Add adds a new error to the execution error
29func (e *CombinedError) Add(err error) {
30	if err == nil {
31		return
32	}
33
34	e.errors = append(e.errors, err)
35}
36
37// Size returns a
38func (e *CombinedError) Size() int {
39	return len(e.errors)
40}