signalis-eb/godot/addons/iterator/map.gd

14 lines
365 B
GDScript

class_name MapIterator extends Iterator
var iterator: Iterator
var morphism: Callable
func _init(iterator: Iterator, fn: Callable) -> void:
self.iterator = iterator
self.morphism = fn
func next() -> Option:
match iterator.next():
var x when x.is_some():
return Option.some(morphism.call(x.unwrap()))
_: return Option.none