class ArrayIterator
  constructor: (@data) ->
    @index = 0
    @length = @data.length

  next: ->
    return null unless @hasNext()
    element = @current()
    @index += 1
    element

  hasNext: ->
    @index < @length

  rewind: ->
    @index = 0
    @current()
  
  current: ->
    @data[@index]

module.exports = ArrayIterator