[][src]Crate grouping_by

This library provides users the possibility of grouping their iterators by any function. It is similar to C# IEnumerable.GroupBy or Java Collectors.groupingBy

Example:


use std::collections::HashMap;
use crate::grouping_by::GroupingBy;

#[derive(Debug, PartialEq)]
struct Point {
  x: i32,
  y: i32,
}
let array: [Point; 4] = [
      Point { x: 1, y: 2 },
      Point { x: 1, y: 3 },
      Point { x: 2, y: 2 },
      Point { x: 2, y: 2 },
];

assert_eq!(
   [
       (1, vec![&Point { x: 1, y: 2 }, &Point { x: 1, y: 3 }]),
       (2, vec![&Point { x: 2, y: 2 }, &Point { x: 2, y: 2 }])
   ]
   .iter()
   .cloned()
   .collect::<HashMap<i32, Vec<&Point>>>(),
   array.iter().grouping_by(|point| point.x)
);

Traits

GroupingBy