code: func (e EntriesBySize) Print(to io.Writer) (int, error) {
  	if len(e) == 0 {
  		return 0, nil
  	}
  
  	extensions := make([]string, 0, len(e))
  	sizes := make([]string, 0, len(e))
  	stats := make([]string, 0, len(e))
  	percentages := make([]string, 0, len(e))
  
  	for _, entry := range e {
  		bytesAbove := uint64(entry.BytesAbove)
  		above := entry.TotalAbove
  		total := entry.Total
  		percentAbove := 100 * (float64(above) / float64(total))
  
  		var size string
  		if migrateInfoUnit > 0 {
  			size = humanize.FormatBytesUnit(bytesAbove, migrateInfoUnit)
  		} else {
  			size = humanize.FormatBytes(bytesAbove)
  		}
  
  		stat := fmt.Sprintf("%d/%d files(s)",
  			above, total)
  
  		percentage := fmt.Sprintf("%.0f%%", percentAbove)
  
  		extensions = append(extensions, entry.Qualifier)
  		sizes = append(sizes, size)
  		stats = append(stats, stat)
  		percentages = append(percentages, percentage)
  	}
  
  	extensions = tools.Ljust(extensions)
  	sizes = tools.Ljust(sizes)
  	stats = tools.Rjust(stats)
  	percentages = tools.Rjust(percentages)
  
  	output := make([]string, 0, len(e))
  	for i := 0; i < len(e); i++ {
  		extension := extensions[i]
  		size := sizes[i]
  		stat := stats[i]
  		percentage := percentages[i]
  
  		line := strings.Join([]string{extension, size, stat, percentage}, "\t")
  
  		output = append(output, line)
  	}
  
  	return fmt.Fprintln(to, strings.Join(output, "\n"))
  }
docs: // Print formats the `*MigrateInfoEntry`'s in the set and prints them to the
  // given io.Writer, "to", returning "n" the number of bytes written, and any
  // error, if one occurred.