rocketraman
fun <T> Iterator<T>.doWhile(condition: () -> Boolean, op: (e: T) -> Unit) { while(hasNext() && condition()) op(next()) }