16 lines
376 B
GDScript
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
|