# merror [](https://godoc.org/github.com/wiggin77/merror)  Multiple Error aggregator for Go. ## Usage ```go func foo() error { merr := merror.New() if err := DoSomething(); err != nil { merr.Append(err) } return merr.ErrorOrNil() } ``` A bounded `merror` can be used to guard against memory ballooning. ```go func bar() error { merr := merror.NewWithCap(10) for i := 0; i < 15; i++ { if err := DoSomething(); err != nil { merr.Append(err) } } fmt.Printf("Len: %d, Overflow: %d", merr.Len(), merr.Overflow()) // Len: 10, Overflow: 5 return merr.ErrorOrNil() } ``` ## errors.Is If any of the errors appended to a `merror` match the target error passed to `errors.Is(err, target error)` then true is returned. ## errors.As If any of the errors appended to a `merror` match the target type passed to `errors.As(err error, target any)` then true is returned and the target is set to the matching error.