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

23 lines
467 B
GDScript

class_name PeekableIter extends Iterator
var _iter: Iterator
var _peeked: Variant
func _init(iter: Iterator) -> void:
_iter = iter
func clone() -> PeekableIter:
return PeekableIter.new(_iter.clone())
func peek() -> Option:
if _peeked == null:
_peeked = _iter.next()
return _peeked
func next() -> Option:
if _peeked == null:
return _iter.next()
else:
var value = _peeked
_peeked = null
return value