/**
 * Document-method: MessagePack::Unpacker#feed_each
 *
 * call-seq:
 *   unpacker.feed_each(data) {|object| }
 *
 * Same as feed(data) + each {|object| }, but tries to avoid copying of the buffer.
 */
static VALUE MessagePack_Unpacker_feed_each(VALUE self, VALUE data)
{
        size_t consumed = 0;
        StringValue(data);

        VALUE args[3];
        args[0] = self;
        args[1] = data;
        args[2] = (VALUE)&consumed;

        return rb_ensure(feed_each_impl, (VALUE)args,
                        feed_each_ensure, (VALUE)args);
}