class Protocol::HPACK::Compressor

def write_string(string, huffman = self.huffman)

Returns:
  • (String) - binary string

Parameters:
  • string (String) --
def write_string(string, huffman = self.huffman)
	if huffman != :never
		encoded = Huffman.encode(string)
		
		if huffman == :shorter and encoded.bytesize >= string.bytesize
			encoded = nil
		end
	end
	
	if encoded
		first = @buffer.bytesize
		
		write_integer(encoded.bytesize, 7)
		write_bytes(encoded.b)
		
		@buffer.setbyte(first, @buffer.getbyte(first).ord | 0x80)
	else
		write_integer(string.bytesize, 7)
		write_bytes(string.b)
	end
end