class Herb::LibHerb::Array

def capacity

def capacity
  LibHerb.array_capacity(pointer)
end

def initialize(pointer, item_class)

def initialize(pointer, item_class)
  @pointer = pointer
  @item_class = item_class
end

def inspect

def inspect
  %(#<#{self.class} size=#{size} capacity=#{capacity} item_class=#{item_class} pointer=#{pointer}>)
end

def item_pointers

def item_pointers
  size.times.map { |item|
    LibHerb.array_get(pointer, item)
  }
end

def items

def items
  item_pointers.map { |item_pointer|
    item_class.new(item_pointer)
  }
end

def size

def size
  LibHerb.array_size(pointer)
end