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

20 lines
502 B
GDScript

class_name ListIterator extends Iterator
var _value: Variant
var _iter: RangeIterator
func _init(value: Variant, iter: RangeIterator) -> void:
_value = value
_iter = iter
static func from_array(array: Array) -> ListIterator:
return ListIterator.new(array, RangeIterator.from_array(array))
func _at(index: int) -> Variant:
return _value[index]
func clone() -> ListIterator:
return ListIterator.new(_value, _iter.clone())
func next() -> Option:
return _iter.next().map(_at)