class HrrRbSsh::DataType::Uint64
Uint64
provides methods to convert integer value and 64-bit unsigned binary string each other.
Public Class Methods
decode(io)
click to toggle source
Convert 64-bit unsigned binary into Integer value.
@param [::IO] io IO instance that has buffer to be read @return [::Integer] converted integer value
# File lib/hrr_rb_ssh/data_type/uint64.rb, line 26 def self.decode io (io.read(4).unpack("N")[0] << 32) + (io.read(4).unpack("N")[0]) end
encode(arg)
click to toggle source
Convert integer value into 64-bit unsigned binary string.
@param [::Integer] arg integer value to be converted @raise [::ArgumentError] when arg is not between 0x0000_0000_0000_0000 and 0xffff_ffff_ffff_ffff @return [::String] converted 64-bit unsigned binary string
# File lib/hrr_rb_ssh/data_type/uint64.rb, line 13 def self.encode arg case arg when 0x0000_0000_0000_0000..0xffff_ffff_ffff_ffff [arg >> 32].pack("N") + [arg & 0x0000_0000_ffff_ffff].pack("N") else raise ArgumentError, "must be in #{0x0000_0000_0000_0000}..#{0xffff_ffff_ffff_ffff}, but got #{arg.inspect}" end end