module BinData::IO::Read::UnSeekableStream

def num_bytes_remaining

The number of bytes remaining in the input stream.
def num_bytes_remaining
  raise IOError, "stream is unseekable"
end

def offset

up when reading bitfields.
Returns the current offset of the io stream. Offset will be rounded
def offset
  @read_count ||= 0
end

def read_raw(n)

def read_raw(n)
  @read_count ||= 0
  data = @raw_io.read(n)
  @read_count += data.size if data
  data
end

def seek_raw(n)

def seek_raw(n)
  raise IOError, "stream is unseekable" if n < 0
  # skip over data in 8k blocks
  while n > 0
    bytes_to_read = [n, 8192].min
    read_raw(bytes_to_read)
    n -= bytes_to_read
  end
end