class Erlang::ETF::Binary
| 1 | 4 | Len | | — | — | —- | | 109 | Len | Data |
Binaries are generated with bit syntax expression or with [`list_to_binary/1`], [`term_to_binary/1`], or as input from binary ports.
The `Len` length field is an unsigned 4 byte integer (big endian).
(see [`BINARY_EXT`])
[`list_to_binary/1`]: erlang.org/doc/man/erlang.html#list_to_binary-1 [`term_to_binary/1`]: erlang.org/doc/man/erlang.html#term_to_binary-1 [`BINARY_EXT`]: erlang.org/doc/apps/erts/erl_ext_dist.html#BINARY_EXT
Constants
- UINT32BE
Public Class Methods
[](term)
click to toggle source
# File lib/erlang/etf/binary.rb, line 27 def [](term) term = Erlang.from(term) if not term.kind_of?(Erlang::Binary) return new(term) end
erlang_load(buffer)
click to toggle source
# File lib/erlang/etf/binary.rb, line 32 def erlang_load(buffer) size, = buffer.read(4).unpack(UINT32BE) data = buffer.read(size) return new(Erlang::Binary[data]) end
new(term)
click to toggle source
# File lib/erlang/etf/binary.rb, line 39 def initialize(term) raise ArgumentError, "term must be of type Erlang::Binary" if not term.kind_of?(Erlang::Binary) @term = term end
Public Instance Methods
erlang_dump(buffer = ::String.new.force_encoding(BINARY_ENCODING))
click to toggle source
# File lib/erlang/etf/binary.rb, line 44 def erlang_dump(buffer = ::String.new.force_encoding(BINARY_ENCODING)) buffer << BINARY_EXT buffer << [@term.bytesize].pack(UINT32BE) buffer << Erlang::ETF::Term.binary_encoding(@term.data) return buffer end