Class: Erlang::ETF::LargeTuple
- Inherits:
-
Object
- Object
- Erlang::ETF::LargeTuple
- Includes:
- Term
- Defined in:
- lib/erlang/etf/large_tuple.rb
Overview
1 | 4 | N |
---|---|---|
105 | Arity | Elements |
Same as SMALL_TUPLE_EXT
with the exception that Arity
is an
unsigned 4 byte integer in big endian format.
(see LARGE_TUPLE_EXT
)
Constant Summary
Constants included from Term
Term::BERT_PREFIX, Term::BIN_LSB_PACK, Term::BIN_MSB_PACK
Instance Method Summary collapse
- #__ruby_evolve__ ⇒ Object
- #bert? ⇒ Boolean
-
#initialize(elements) ⇒ LargeTuple
constructor
A new instance of LargeTuple.
- #serialize_header(buffer) ⇒ Object
Methods included from Term
#==, #__erlang_evolve__, #__erlang_type__, included
Constructor Details
#initialize(elements) ⇒ LargeTuple
Returns a new instance of LargeTuple.
37 38 39 |
# File 'lib/erlang/etf/large_tuple.rb', line 37 def initialize(elements) @elements = elements end |
Instance Method Details
#__ruby_evolve__ ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/erlang/etf/large_tuple.rb', line 51 def __ruby_evolve__ if bert? ::Erlang::ETF::BERT.evolve(self) else ::Erlang::Tuple[*elements.map(&:__ruby_evolve__)] end end |
#bert? ⇒ Boolean
46 47 48 49 |
# File 'lib/erlang/etf/large_tuple.rb', line 46 def bert? elements[0].respond_to?(:atom_name) && elements[0].atom_name == BERT_PREFIX end |
#serialize_header(buffer) ⇒ Object
41 42 43 44 |
# File 'lib/erlang/etf/large_tuple.rb', line 41 def serialize_header(buffer) serialize_tag(buffer) serialize_arity(buffer) end |