func writeReport(path string, rows []Row) (err error) { f, err := os.Create(path) if err != nil { return fmt.Errorf("create %s: %w", path, err) } defer func() { if cerr := f.Close(); cerr != nil && err == nil { err = fmt.Errorf("close %s: %w", path, cerr) } }() w := bufio.NewWriter(f) for _, r := range rows { if _, err := fmt.Fprintln(w, r.String()); err != nil { return err } } return w.Flush() }