class BinData::DSLMixin::DSLBigAndLittleEndianHandler

def override_new_in_class(bnl_class)

def override_new_in_class(bnl_class)
  endian_classes = {
    big:    class_with_endian(bnl_class, :big),
    little: class_with_endian(bnl_class, :little),
  }
  bnl_class.define_singleton_method(:new) do |*args|
    if self == bnl_class
      _, options, _ = arg_processor.separate_args(self, args)
      delegate = endian_classes[options[:endian]]
      return delegate.new(*args) if delegate
    end
    super(*args)
  end
end