Module: Erlang::ETF::Extensions::ErlangString

Defined in:
lib/erlang/etf/extensions/erlang-string.rb

Constant Summary collapse

STRING_MAX =
(+1 << 16) - 1

Instance Method Summary collapse

Instance Method Details

#__erlang_evolve__Object



19
20
21
22
23
24
25
26
# File 'lib/erlang/etf/extensions/erlang-string.rb', line 19

def __erlang_evolve__
  case __erlang_type__
  when :list
    ETF::List.new(unpack('C*'))
  when :string
    ETF::String.new(self)
  end
end

#__erlang_type__Object



11
12
13
14
15
16
17
# File 'lib/erlang/etf/extensions/erlang-string.rb', line 11

def __erlang_type__
  if bytesize > STRING_MAX
    :list
  else
    :string
  end
end