module BinData::Int
def define_methods(int_class, nbits, endian, signed)
def define_methods(int_class, nbits, endian, signed) raise "nbits must be divisible by 8" unless (nbits % 8).zero? int_class.module_eval <<-END def assign(val) #{create_clamp_code(nbits, signed)} super(val) end def do_num_bytes #{nbits / 8} end #--------------- private def sensible_default 0 end def value_to_binary_string(val) #{create_clamp_code(nbits, signed)} #{create_int2uint_code(nbits) if signed == :signed} #{create_to_binary_s_code(nbits, endian)} end def read_and_return_value(io) val = #{create_read_code(nbits, endian)} #{create_uint2int_code(nbits) if signed == :signed} val end END end