Class: Hpack::IntegerReader

Inherits:
Object
  • Object
show all
Defined in:
lib/hpack/integer_reader.rb

Instance Method Summary collapse

Instance Method Details

#read(length: 7, input: nil, start_with: 0) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/hpack/integer_reader.rb', line 3

def read length: 7, input: nil, start_with: 0
  prefix_mask = 0xFF >> (8 - length)
  result = start_with & prefix_mask

  return result if result != prefix_mask

  index = 0
  begin
    next_byte = input.readbyte
    result += (next_byte & 0b0111_1111) << (7 * index)
    index += 1
  end until next_byte & 0b1000_0000 == 0

  result
end