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