module BinData::BitField

def define_class(name, nbits, endian, signed = :unsigned)

def define_class(name, nbits, endian, signed = :unsigned)
  @@mutex.synchronize do
    unless BinData.const_defined?(name)
      new_class = Class.new(BinData::BasePrimitive)
      BitField.define_methods(new_class, nbits, endian.to_sym, signed.to_sym)
      RegisteredClasses.register(name, new_class)
      BinData.const_set(name, new_class)
    end
  end
  BinData.const_get(name)
end