Property definitions

pipeline $ PipeMap :: defaultinit
private class PipeMap[E, F]
	super Iterator[F]

	var source: Iterator[E]
	var function: Function[E, F]

	var item_cache: nullable F = null
	var item_cached = false

	redef fun is_ok do return source.is_ok

	redef fun item do
		if item_cached then return item_cache
		item_cache = function.apply(source.item)
		item_cached = true
		return item_cache
	end

	redef fun next do
		source.next
		item_cached = false
	end
end
lib/pipeline/pipeline.nit:519,1--541,3