class BinData::Struct

def define_field_accessors_for(name, index)

def define_field_accessors_for(name, index)
  define_singleton_method(name) do
    instantiate_obj_at(index) if @field_objs[index].nil?
    @field_objs[index]
  end
  define_singleton_method("#{name}=") do |*vals|
    instantiate_obj_at(index) if @field_objs[index].nil?
    @field_objs[index].assign(*vals)
  end
  define_singleton_method("#{name}?") do
    instantiate_obj_at(index) if @field_objs[index].nil?
    include_obj?(@field_objs[index])
  end
end