struct.c:337
static VALUE
rb_struct_each_pair(s)
    VALUE s;
{
    VALUE member;
    long i;

    member = rb_struct_iv_get(rb_obj_class(s), "__member__");
    if (NIL_P(member)) {
	rb_bug("non-initialized struct");
    }
    for (i=0; i<RSTRUCT(s)->len; i++) {
	rb_yield_values(2, RARRAY(member)->ptr[i], RSTRUCT(s)->ptr[i]);
    }
    return s;
}
