class BinData::BasePrimitive

def assign(val)

def assign(val)
  raise ArgumentError, "can't set a nil value for #{debug_name}" if val.nil?
  raw_val = val.respond_to?(:snapshot) ? val.snapshot : val
  @value =
    begin
      raw_val.dup
    rescue TypeError
      # can't dup Fixnums
      raw_val
    end
end