Class: Borsh::Integer
- Inherits:
-
Object
- Object
- Borsh::Integer
- Defined in:
- lib/borsh/integer.rb
Instance Method Summary collapse
-
#initialize(value, type) ⇒ Integer
constructor
A new instance of Integer.
- #to_borsh ⇒ Object
Constructor Details
#initialize(value, type) ⇒ Integer
Returns a new instance of Integer.
2 3 4 5 |
# File 'lib/borsh/integer.rb', line 2 def initialize(value, type) @value = value @type = type end |
Instance Method Details
#to_borsh ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/borsh/integer.rb', line 7 def to_borsh pack_arg = case type when :u8 'C' when :u16 'S<' when :u32 'L<' when :u64 'Q<' when :u128 lower = value & 0xFFFFFFFFFFFFFFFF higher = (value >> 64) & 0xFFFFFFFFFFFFFFFF return [lower, higher].pack('Q<*') else raise Borsh::ArgumentError, "unknown type #{type}" end result = [value].pack(pack_arg) raise Borsh::ArgumentError, 'Integer serialization failure' if result.unpack(pack_arg) != [value] result end |