module BinData::BitAligned
A monkey patch to force byte-aligned primitives to become bit-aligned. This allows them to be used at non byte based boundaries.
class BitString < BinData::String bit_aligned end class MyRecord < BinData::Record bit4 :preamble bit_string :str, length: 2 end
Public Instance Methods
bit_aligned?()
click to toggle source
# File lib/bindata/alignment.rb, line 55 def bit_aligned? true end
do_num_bytes()
click to toggle source
Calls superclass method
# File lib/bindata/alignment.rb, line 63 def do_num_bytes super.to_f end
do_write(io)
click to toggle source
# File lib/bindata/alignment.rb, line 67 def do_write(io) value_to_binary_string(_value).each_byte { |v| io.writebits(v, 8, :big) } end
read_and_return_value(io)
click to toggle source
Calls superclass method
# File lib/bindata/alignment.rb, line 59 def read_and_return_value(io) super(BitAlignedIO.new(io)) end