()
| 25 | type MultiError []error |
| 26 | |
| 27 | func (m MultiError) Error() string { |
| 28 | s, n := "", 0 |
| 29 | for _, e := range m { |
| 30 | if e != nil { |
| 31 | if n == 0 { |
| 32 | s = e.Error() |
| 33 | } |
| 34 | n++ |
| 35 | } |
| 36 | } |
| 37 | switch n { |
| 38 | case 0: |
| 39 | return "(0 errors)" |
| 40 | case 1: |
| 41 | return s |
| 42 | case 2: |
| 43 | return s + " (and 1 other error)" |
| 44 | } |
| 45 | return fmt.Sprintf("%s (and %d other errors)", s, n-1) |
| 46 | } |
no outgoing calls