Class: HMap::HMapStructure Abstract
- Inherits:
-
Object
- Object
- HMap::HMapStructure
- Defined in:
- lib/hmap/hmap_struct.rb
Overview
A general purpose pseudo-structure.
Direct Known Subclasses
Constant Summary collapse
- FORMAT =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
The String#unpack format of the data structure.
''- SIZEOF =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
The size of the data structure, in bytes.
0- SWAPPED =
true
Class Method Summary collapse
-
.bytesize ⇒ Integer
The size, in bytes, of the represented structure.
- .format ⇒ Object
-
.new_from_bin(swapped, bin) ⇒ HMap::HMapStructure
private
The resulting structure.
- .swapped? ⇒ Boolean
Instance Method Summary collapse
- #serialize ⇒ Object
-
#to_h ⇒ Hash
A hash representation of this HMapStructure.
Class Method Details
.bytesize ⇒ Integer
Returns the size, in bytes, of the represented structure.
28 29 30 |
# File 'lib/hmap/hmap_struct.rb', line 28 def self.bytesize self::SIZEOF end |
.format ⇒ Object
32 33 34 |
# File 'lib/hmap/hmap_struct.rb', line 32 def self.format self::FORMAT end |
.new_from_bin(swapped, bin) ⇒ HMap::HMapStructure
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the resulting structure.
44 45 46 47 |
# File 'lib/hmap/hmap_struct.rb', line 44 def self.new_from_bin(swapped, bin) format = Utils.specialize_format(self::FORMAT, swapped) new(*bin.unpack(format)) end |
.swapped? ⇒ Boolean
36 37 38 |
# File 'lib/hmap/hmap_struct.rb', line 36 def self.swapped? self::SWAPPED end |
Instance Method Details
#serialize ⇒ Object
49 50 51 |
# File 'lib/hmap/hmap_struct.rb', line 49 def serialize [].pack(format) end |
#to_h ⇒ Hash
Returns a hash representation of this HMap::HMapStructure.
54 55 56 57 58 59 60 61 |
# File 'lib/hmap/hmap_struct.rb', line 54 def to_h { 'structure' => { 'format' => self.class::FORMAT, 'bytesize' => self.class.bytesize } } end |