class ObjectIterator
  constructor: (@data) ->
    @index = 0
    @keys = []

    for k, v of @data
      @keys.push(k)

    @length = @keys.length

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

  hasNext: ->
    @index < @length

  rewind: ->
    @index = 0
    @current()

  current: ->
    @data[@keys[@index]]

module.exports = ObjectIterator
