signalis-eb/godot/addons/iterator/take_while.gd
2025-06-06 01:49:16 -04:00

16 lines
376 B
GDScript

class_name TakeWhileIter extends Iterator
var _iter: Iterator
var _predicate: Callable
func _init(iter: Iterator, predicate: Callable) -> void:
_iter = iter
_predicate = predicate
func clone() -> TakeWhileIter:
return self
func next() -> Option:
match _iter.next().filter(_predicate):
var x when x.is_some(): return x
_: return Option.none