class Canoser::IntField

Public Class Methods

new(int_bits, signed=false) click to toggle source
# File lib/canoser/field.rb, line 6
def initialize(int_bits, signed=false)
  @int_bits = int_bits
  @signed = signed
end

Public Instance Methods

decode(cursor) click to toggle source
# File lib/canoser/field.rb, line 37
def decode(cursor)
  bytes = cursor.read_bytes(@int_bits/8)
  decode_bytes(bytes)
end
decode_bytes(bytes) click to toggle source
# File lib/canoser/field.rb, line 33
def decode_bytes(bytes)
  bytes.unpack(pack_str)[0]
end
encode(value) click to toggle source
# File lib/canoser/field.rb, line 29
def encode(value)
  [value].pack(pack_str)
end
inspect() click to toggle source
# File lib/canoser/field.rb, line 11
def inspect
  if @signed
    "Int#{@int_bits}"
  else
    "Uint#{@int_bits}"
  end
end
max_value() click to toggle source
# File lib/canoser/field.rb, line 42
def max_value
  if @signed
    2**(@int_bits-1) - 1
  else
    2**@int_bits - 1
  end
end
pack_str() click to toggle source
# File lib/canoser/field.rb, line 23
def pack_str
  str = @@pack_map[@int_bits]
  str = str.downcase if @signed
  str
end
to_s() click to toggle source
# File lib/canoser/field.rb, line 19
def to_s
  inspect
end