module BinData::Int

def define_class(nbits, endian, signed)

def define_class(nbits, endian, signed)
  name = class_name(nbits, endian, signed)
  unless BinData.const_defined?(name)
    BinData.module_eval <<-END
      class #{name} < BinData::BasePrimitive
        Int.define_methods(self, #{nbits}, :#{endian}, :#{signed})
      end
    END
  end
  BinData.const_get(name)
end