code: func (r report) String() string {
  	result := &bytes.Buffer{}
  	fmt.Fprintf(result, "{")
  	for k := range r {
  		var status string
  		switch k {
  		case statusPending:
  			status = "pending"
  		case statusDownloading:
  			status = "downloading"
  		case statusExtracting:
  			status = "extracting"
  		case statusComplete:
  			status = "complete"
  		}
  		fmt.Fprintf(result, "%s:{Count: %d, Current: %d, Total: %d}, ", status, r[k].Count, r[k].Current, r[k].Total)
  	}
  	fmt.Fprintf(result, "}")
  	return result.String()
  }
docs: // String is used for test output