/*
* call-seq:
* enum.each_with_index {|obj, i| block } -> nil
*
* Calls <em>block</em> with two arguments, the item and its index, for
* each item in <i>enum</i>.
*
* hash = Hash.new
* %w(cat dog wombat).each_with_index {|item, index|
* hash[item] = index
* }
* hash #=> {"cat"=>0, "wombat"=>2, "dog"=>1}
*
*/
static VALUE
enum_each_with_index(obj)
VALUE obj;
{
NODE *memo = rb_node_newnode(NODE_MEMO, 0, 0, 0);
rb_iterate(rb_each, obj, each_with_index_i, (VALUE)memo);
rb_gc_force_recycle((VALUE)memo);
return obj;
}