iter-sk(ip)(t)ak(e)
This creates a new iterator type that combines the functionality of std::iter::Skip and std::iter::Take. Usage is as follows
let v: = vec!;
// Takes the first 2 values of `v` into `taken` and makes the rest of the iterator accessible through `next`
let = new;
let mut count = 0;
assert_eq!;
while next.size_hint.0 > 0