[][src]Function treebender::utils::combinations

pub fn combinations<T>(list: &[Vec<T>]) -> Vec<Vec<T>> where
    T: Clone

Takes a list where each element is a set of choices, and returns all the possible sets generated. Will clone the elements.

let v = vec![
  vec![1],
  vec![2, 3],
  vec![4],
  vec![5, 6, 7],
];

assert_eq!(treebender::utils::combinations(&v), vec![
  vec![1, 2, 4, 5],
  vec![1, 3, 4, 5],
  vec![1, 2, 4, 6],
  vec![1, 3, 4, 6],
  vec![1, 2, 4, 7],
  vec![1, 3, 4, 7],
]);