pub trait BaseVecIterator: Iterator {
// Required methods
fn mut_index(&mut self) -> &mut usize;
fn len(&self) -> usize;
fn name(&self) -> &str;
// Provided methods
fn set_(&mut self, i: usize) { ... }
fn next_at(&mut self, i: usize) -> Option<Self::Item> { ... }
fn is_empty(&self) -> bool { ... }
fn skip(self, _: usize) -> Skip<Self>
where Self: Sized { ... }
}