-fn column_counts(rows: &[RowInput]) -> HashMap<String, usize> {
- rows.iter()
- .flat_map(|r| r.entries.iter())
- .fold(HashMap::new(), |mut counts, e| {
- counts
- .entry(String::from(e))
- .and_modify(|c| *c += 1)
+fn column_counts(rows: &[RowInput]) -> Vec<(usize, String)> {
+ let mut counts: Vec<_> = rows
+ .iter()
+ .flat_map(|r| r.entries.iter().collect::<HashSet<_>>().into_iter())
+ .fold(HashMap::new(), |mut cs, e| {
+ cs.entry(String::from(e))
+ .and_modify(|n| *n += 1)