module BinData::IO::UnSeekableIO

def num_bytes_remaining

def num_bytes_remaining
  raise IOError, "stream is unseekable"
end

def seek_abs(n)

def seek_abs(n)
  skip(n - offset)
end

def seekable?

def seekable?
  false
end

def skip(n)

def skip(n)
  raise IOError, "can not skip backwards" if n.negative?
  # skip over data in 8k blocks
  while n > 0
    bytes_to_read = [n, 8192].min
    read(bytes_to_read)
    n -= bytes_to_read
  end
end