module BinData::BitField

def define_class(nbits, endian)

def define_class(nbits, endian)
  name = "Bit#{nbits}"
  name += "le" if endian == :little
  unless BinData.const_defined?(name)
    BinData.module_eval <<-END
      class #{name} < BinData::BasePrimitive
        BitField.define_methods(self, #{nbits}, :#{endian})
      end
    END
  end
  BinData.const_get(name)
end