20 lines
502 B
GDScript
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)
|