code: func ProcessingStatsTable(w io.Writer, stats ...*ProcessingStats) {
  	names := make([]string, len(stats)+1)
  
  	var data [][]string
  
  	for i := 0; i < len(stats); i++ {
  		stat := stats[i]
  		names[i+1] = stat.Name
  
  		titleVals := stat.toVals()
  
  		if i == 0 {
  			data = make([][]string, len(titleVals))
  		}
  
  		for j, tv := range titleVals {
  			if i == 0 {
  				data[j] = []string{tv.name, strconv.Itoa(int(tv.val))}
  			} else {
  				data[j] = append(data[j], strconv.Itoa(int(tv.val)))
  			}
  
  		}
  
  	}
  
  	table := tablewriter.NewWriter(w)
  
  	table.AppendBulk(data)
  	table.SetHeader(names)
  	table.SetBorder(false)
  	table.Render()
  
  }
docs: // ProcessingStatsTable writes a table-formatted representation of stats to w.