pub trait ArrayUtils<T> {
// Required methods
fn swaping(&mut self, a: usize, b: usize) -> bool;
fn index_of(&self, search: &T) -> usize;
fn chunk(&self, size: usize) -> Vec<Vec<T>>;
fn fill_mut(&mut self, value: &T);
fn unique(&self) -> Vec<T>;
fn unique_adv(&self) -> (Vec<T>, Vec<T>);
}