Iterator::IteratorWrapper
IteratorWrapper eliminates some boilerplate when defining
an Iterator that wraps another iterator.
To use it, include this module in your iterator and make sure that the wrapped
iterator is stored in the @iterator instance variable.
Macros
wrapped_next
Invokes next on the wrapped iterator and returns stop if
the given value was a Iterator::Stop. Otherwise, returns the value.