warnings.go 476 B

123456789101112131415161718192021222324252627282930
  1. package common
  2. import "fmt"
  3. type Warnings struct {
  4. List []error
  5. Verbose bool
  6. }
  7. func (w *Warnings) Add(err error) {
  8. w.List = append(w.List, err)
  9. }
  10. func (w *Warnings) Reference() error {
  11. if len(w.List) > 0 {
  12. return w
  13. }
  14. return nil
  15. }
  16. func (w *Warnings) Error() string {
  17. if w.Verbose {
  18. str := ""
  19. for i, e := range w.List {
  20. str += fmt.Sprintf("\tError %d: %s\n", i, e.Error())
  21. }
  22. return str
  23. }
  24. return fmt.Sprintf("Number of warnings: %v", len(w.List))
  25. }