module BinData::BitField
def define_methods(bit_class, nbits, endian, signed)
def define_methods(bit_class, nbits, endian, signed) bit_class.module_eval <<-END #{create_params_code(nbits)} def assign(val) #{create_nbits_code(nbits)} #{create_clamp_code(nbits, signed)} super(val) end def do_write(io) #{create_nbits_code(nbits)} val = _value #{create_int2uint_code(nbits, signed)} io.writebits(val, #{nbits}, :#{endian}) end def do_num_bytes #{create_nbits_code(nbits)} #{create_do_num_bytes_code(nbits)} end def bit_aligned? true end #--------------- private def read_and_return_value(io) #{create_nbits_code(nbits)} val = io.readbits(#{nbits}, :#{endian}) #{create_uint2int_code(nbits, signed)} val end def sensible_default 0 end END end