array_tool 1.0.3

Helper methods for processing collections
Documentation
43% SLOWER implementation

pub fn experimental_uniques<T: std::cmp::PartialEq<T> + std::clone::Clone>(a: Vec<T>, b: Vec<T>) -> Vec<Vec<T>> {
  let mut first_uniq = a.clone();
  let mut second_uniq = b.clone();
  
  let mut x = first_uniq.len();

  'outer: loop {
    x -= 1;
    let mut y = second_uniq.len();
    let mut removed = false;
    'inner: loop {
      y -= 1;
      if first_uniq[x] == second_uniq[y] {
        first_uniq.remove(x);
        second_uniq.remove(y);
        removed = true
      }
      if x == 0{
        if y == 0{
          break 'outer
        }
      }
      else {
        if y == 0{
          break
        }
        if removed {
          continue 'outer
        }
      }
    }
  }
 
  vec![first_uniq, second_uniq]
}